Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / wpf / src / Framework / MS / Internal / Data / DisplayMemberTemplateSelector.cs / 1 / DisplayMemberTemplateSelector.cs
//---------------------------------------------------------------------------- // //// Copyright (C) Microsoft Corporation. All rights reserved. // // // Description: Defines DisplayMemberTemplateSelector class. // //--------------------------------------------------------------------------- using System; using System.Diagnostics; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using MS.Internal; namespace MS.Internal.Data { // Selects template appropriate for CLR/XML item in order to // display string property at DisplayMemberPath on the item. internal sealed class DisplayMemberTemplateSelector : DataTemplateSelector { ////// Constructor /// /// path to the member to display public DisplayMemberTemplateSelector(string displayMemberPath, string stringFormat) { Debug.Assert(!(String.IsNullOrEmpty(displayMemberPath) && String.IsNullOrEmpty(stringFormat))); _displayMemberPath = displayMemberPath; _stringFormat = stringFormat; } ////// Override this method to return an app specific /// The data content /// The container in which the content is to be displayed ///. /// a app specific template to apply. public override DataTemplate SelectTemplate(object item, DependencyObject container) { if (XmlHelper.IsXmlNode(item)) { if (_xmlNodeContentTemplate == null) { _xmlNodeContentTemplate = new DataTemplate(); FrameworkElementFactory text = ContentPresenter.CreateTextBlockFactory(); Binding binding = new Binding(); binding.XPath = _displayMemberPath; binding.StringFormat = _stringFormat; text.SetBinding(TextBlock.TextProperty, binding); _xmlNodeContentTemplate.VisualTree = text; _xmlNodeContentTemplate.Seal(); } return _xmlNodeContentTemplate; } else { if (_clrNodeContentTemplate == null) { _clrNodeContentTemplate = new DataTemplate(); FrameworkElementFactory text = ContentPresenter.CreateTextBlockFactory(); Binding binding = new Binding(); binding.Path = new PropertyPath(_displayMemberPath); binding.StringFormat = _stringFormat; text.SetBinding(TextBlock.TextProperty, binding); _clrNodeContentTemplate.VisualTree = text; _clrNodeContentTemplate.Seal(); } return _clrNodeContentTemplate; } } private string _displayMemberPath; private string _stringFormat; private DataTemplate _xmlNodeContentTemplate; private DataTemplate _clrNodeContentTemplate; } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. //---------------------------------------------------------------------------- // //// Copyright (C) Microsoft Corporation. All rights reserved. // // // Description: Defines DisplayMemberTemplateSelector class. // //--------------------------------------------------------------------------- using System; using System.Diagnostics; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using MS.Internal; namespace MS.Internal.Data { // Selects template appropriate for CLR/XML item in order to // display string property at DisplayMemberPath on the item. internal sealed class DisplayMemberTemplateSelector : DataTemplateSelector { ////// Constructor /// /// path to the member to display public DisplayMemberTemplateSelector(string displayMemberPath, string stringFormat) { Debug.Assert(!(String.IsNullOrEmpty(displayMemberPath) && String.IsNullOrEmpty(stringFormat))); _displayMemberPath = displayMemberPath; _stringFormat = stringFormat; } ////// Override this method to return an app specific /// The data content /// The container in which the content is to be displayed ///. /// a app specific template to apply. public override DataTemplate SelectTemplate(object item, DependencyObject container) { if (XmlHelper.IsXmlNode(item)) { if (_xmlNodeContentTemplate == null) { _xmlNodeContentTemplate = new DataTemplate(); FrameworkElementFactory text = ContentPresenter.CreateTextBlockFactory(); Binding binding = new Binding(); binding.XPath = _displayMemberPath; binding.StringFormat = _stringFormat; text.SetBinding(TextBlock.TextProperty, binding); _xmlNodeContentTemplate.VisualTree = text; _xmlNodeContentTemplate.Seal(); } return _xmlNodeContentTemplate; } else { if (_clrNodeContentTemplate == null) { _clrNodeContentTemplate = new DataTemplate(); FrameworkElementFactory text = ContentPresenter.CreateTextBlockFactory(); Binding binding = new Binding(); binding.Path = new PropertyPath(_displayMemberPath); binding.StringFormat = _stringFormat; text.SetBinding(TextBlock.TextProperty, binding); _clrNodeContentTemplate.VisualTree = text; _clrNodeContentTemplate.Seal(); } return _clrNodeContentTemplate; } } private string _displayMemberPath; private string _stringFormat; private DataTemplate _xmlNodeContentTemplate; private DataTemplate _clrNodeContentTemplate; } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- Canvas.cs
- DataProviderNameConverter.cs
- XamlTypeMapper.cs
- SafeArchiveContext.cs
- DBParameter.cs
- DataGridViewCellMouseEventArgs.cs
- EmptyStringExpandableObjectConverter.cs
- Compiler.cs
- EntityClassGenerator.cs
- ParenthesizePropertyNameAttribute.cs
- FragmentQueryProcessor.cs
- Ref.cs
- StateMachineWorkflowInstance.cs
- XD.cs
- FixedPageStructure.cs
- DelayedRegex.cs
- ArrangedElement.cs
- WorkflowRuntimeEndpoint.cs
- HandlerBase.cs
- Rfc2898DeriveBytes.cs
- ExpressionEditorSheet.cs
- AsynchronousChannelMergeEnumerator.cs
- HtmlLink.cs
- CapabilitiesRule.cs
- GlyphElement.cs
- Propagator.cs
- XmlNamespaceDeclarationsAttribute.cs
- XmlAttributeCollection.cs
- CursorInteropHelper.cs
- Stack.cs
- TextTreeNode.cs
- RadioButton.cs
- ArrayList.cs
- IdentifierCollection.cs
- BlurEffect.cs
- PointF.cs
- ASCIIEncoding.cs
- HostedHttpRequestAsyncResult.cs
- XsdBuildProvider.cs
- SimpleTypeResolver.cs
- DbTransaction.cs
- Select.cs
- CodeTypeReference.cs
- DummyDataSource.cs
- TextRunCacheImp.cs
- HttpProtocolReflector.cs
- UnionCqlBlock.cs
- SR.cs
- WebPartDisplayModeCancelEventArgs.cs
- ByteStreamGeometryContext.cs
- WebPartConnection.cs
- RawStylusInputCustomData.cs
- IndependentlyAnimatedPropertyMetadata.cs
- FileNotFoundException.cs
- BooleanAnimationUsingKeyFrames.cs
- XmlC14NWriter.cs
- SystemIPGlobalStatistics.cs
- URLString.cs
- XamlFilter.cs
- Queue.cs
- WebPartEditVerb.cs
- RepeaterItemCollection.cs
- FullTrustAssemblyCollection.cs
- PropertyValueChangedEvent.cs
- ColumnMapVisitor.cs
- Int16Animation.cs
- FixedSOMTableRow.cs
- DtdParser.cs
- PropertyConverter.cs
- SchemaLookupTable.cs
- DataSourceIDConverter.cs
- WebEventTraceProvider.cs
- RtType.cs
- BasicKeyConstraint.cs
- HttpApplication.cs
- ExceptionList.cs
- selecteditemcollection.cs
- AnimationTimeline.cs
- Visual.cs
- GenericRootAutomationPeer.cs
- ObjectDataSourceChooseTypePanel.cs
- TableRowGroup.cs
- AnnotationResourceCollection.cs
- CollectionViewGroupInternal.cs
- XsltLibrary.cs
- RestClientProxyHandler.cs
- AliasGenerator.cs
- Soap11ServerProtocol.cs
- Token.cs
- ManagementObject.cs
- XmlQualifiedName.cs
- DocumentPageViewAutomationPeer.cs
- AutomationElement.cs
- DriveNotFoundException.cs
- ReachDocumentReferenceSerializer.cs
- TripleDES.cs
- OrderedDictionaryStateHelper.cs
- RNGCryptoServiceProvider.cs
- DocumentViewerConstants.cs
- RangeValidator.cs