Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / 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) { Debug.Assert(!string.IsNullOrEmpty(displayMemberPath)); _displayMemberPath = displayMemberPath; } ////// 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; 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); text.SetBinding(TextBlock.TextProperty, binding); _clrNodeContentTemplate.VisualTree = text; _clrNodeContentTemplate.Seal(); } return _clrNodeContentTemplate; } } private string _displayMemberPath; 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
- PropertyFilterAttribute.cs
- ThicknessKeyFrameCollection.cs
- QuestionEventArgs.cs
- BufferedOutputAsyncStream.cs
- HuffCodec.cs
- AttachedPropertyDescriptor.cs
- ExpressionVisitor.cs
- PresentationTraceSources.cs
- NavigationWindowAutomationPeer.cs
- DateTimeParse.cs
- XPathDocument.cs
- Utils.cs
- FtpRequestCacheValidator.cs
- NullRuntimeConfig.cs
- RuntimeConfig.cs
- DateTimeUtil.cs
- sqlser.cs
- WebHeaderCollection.cs
- XmlSchemaAttributeGroup.cs
- SessionIDManager.cs
- ListenerBinder.cs
- Errors.cs
- CheckBox.cs
- Stackframe.cs
- RoutingSection.cs
- Timer.cs
- PathGradientBrush.cs
- SafeEventLogReadHandle.cs
- JsonQNameDataContract.cs
- HelpExampleGenerator.cs
- StrongNameMembershipCondition.cs
- Simplifier.cs
- WizardForm.cs
- GAC.cs
- XmlAtomicValue.cs
- BindingCollection.cs
- LogStore.cs
- ArrayTypeMismatchException.cs
- Timer.cs
- CreateParams.cs
- TimersDescriptionAttribute.cs
- NativeMethods.cs
- UpDownBaseDesigner.cs
- ThreadStateException.cs
- NativeMethods.cs
- StylusPointDescription.cs
- GridView.cs
- DataService.cs
- EntityType.cs
- ConsoleCancelEventArgs.cs
- DataGridColumnReorderingEventArgs.cs
- KeyFrames.cs
- DoubleLinkListEnumerator.cs
- XmlNodeChangedEventManager.cs
- ComboBox.cs
- RegistryPermission.cs
- QilInvokeLateBound.cs
- MemberHolder.cs
- CheckableControlBaseAdapter.cs
- CustomError.cs
- SqlConnectionPoolProviderInfo.cs
- DependencyPropertyHelper.cs
- WeakEventTable.cs
- SequentialOutput.cs
- TraceContext.cs
- GeometryCollection.cs
- CompiledIdentityConstraint.cs
- BaseTemplateCodeDomTreeGenerator.cs
- ConstraintManager.cs
- FrameworkContentElement.cs
- UnaryNode.cs
- ConfigurationProviderException.cs
- StringPropertyBuilder.cs
- TextEndOfLine.cs
- CategoryNameCollection.cs
- MemberPath.cs
- TypeSystem.cs
- EmptyReadOnlyDictionaryInternal.cs
- WindowsAltTab.cs
- WindowsFormsHostAutomationPeer.cs
- AttributeUsageAttribute.cs
- BackgroundFormatInfo.cs
- Thumb.cs
- TreeNodeStyleCollection.cs
- ReliableInputConnection.cs
- ArgIterator.cs
- FontFaceLayoutInfo.cs
- ToolBarButton.cs
- ProgressBar.cs
- TextBoxBaseDesigner.cs
- ArraySegment.cs
- GeometryHitTestResult.cs
- DomNameTable.cs
- AssemblyName.cs
- BrowserTree.cs
- XmlSchemaImport.cs
- SafeHandles.cs
- XmlValidatingReader.cs
- TextWriterTraceListener.cs
- FreezableCollection.cs