Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Framework / MS / Internal / Data / DisplayMemberTemplateSelector.cs / 1305600 / 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 (AssemblyHelper.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 (AssemblyHelper.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
- FileInfo.cs
- AutomationIdentifierGuids.cs
- WebBrowserNavigatedEventHandler.cs
- XmlSchemaSequence.cs
- SingleKeyFrameCollection.cs
- Helpers.cs
- xsdvalidator.cs
- SerializationSectionGroup.cs
- ByteAnimationBase.cs
- Queue.cs
- WsatConfiguration.cs
- OletxTransactionHeader.cs
- ClusterRegistryConfigurationProvider.cs
- XmlValidatingReader.cs
- AccessDataSourceView.cs
- PrintDialogException.cs
- ThreadStateException.cs
- linebase.cs
- IERequestCache.cs
- Decoder.cs
- FixUp.cs
- _LoggingObject.cs
- AutomationAttributeInfo.cs
- ApplicationBuildProvider.cs
- EntityTemplateFactory.cs
- MappingSource.cs
- HtmlTitle.cs
- ThicknessAnimationBase.cs
- wmiprovider.cs
- OverlappedAsyncResult.cs
- PhysicalFontFamily.cs
- OutputCacheSettingsSection.cs
- BackStopAuthenticationModule.cs
- Control.cs
- Funcletizer.cs
- PeerToPeerException.cs
- Int32CollectionConverter.cs
- InitialServerConnectionReader.cs
- SqlBulkCopyColumnMappingCollection.cs
- ValidateNames.cs
- BaseTemplateBuildProvider.cs
- CalendarSelectionChangedEventArgs.cs
- SequenceDesigner.cs
- TableLayoutStyleCollection.cs
- WindowsPen.cs
- HwndMouseInputProvider.cs
- LabelInfo.cs
- dtdvalidator.cs
- TableRow.cs
- ConfigurationManagerInternal.cs
- ActivationArguments.cs
- DocumentScope.cs
- RemotingSurrogateSelector.cs
- PathData.cs
- ProfileGroupSettingsCollection.cs
- VersionedStream.cs
- SemanticBasicElement.cs
- Blend.cs
- DataControlImageButton.cs
- TemplateParser.cs
- SQLBytes.cs
- InvalidDocumentContentsException.cs
- MobileSysDescriptionAttribute.cs
- PackageRelationshipCollection.cs
- FixedFindEngine.cs
- DataMemberConverter.cs
- EnumType.cs
- TextLineBreak.cs
- ProcessManager.cs
- DropShadowEffect.cs
- XpsFontSerializationService.cs
- TrackingLocation.cs
- PenContexts.cs
- XPathDocument.cs
- storepermission.cs
- BaseResourcesBuildProvider.cs
- XappLauncher.cs
- MouseEventArgs.cs
- XmlAnyElementAttribute.cs
- XsltInput.cs
- InvokeMethod.cs
- QuaternionAnimation.cs
- BackStopAuthenticationModule.cs
- DocumentEventArgs.cs
- LineUtil.cs
- DiagnosticsConfiguration.cs
- AutomationPattern.cs
- Debug.cs
- BaseAppDomainProtocolHandler.cs
- CheckBoxAutomationPeer.cs
- OneOfElement.cs
- DesignerTextViewAdapter.cs
- NonDualMessageSecurityOverHttpElement.cs
- UpdateExpressionVisitor.cs
- WindowsEditBox.cs
- AutoGeneratedFieldProperties.cs
- Closure.cs
- RequestCachePolicy.cs
- Enum.cs
- ServiceOperationParameter.cs