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
- TextChangedEventArgs.cs
- MonthChangedEventArgs.cs
- CreateBookmarkScope.cs
- ReturnType.cs
- SqlTypeSystemProvider.cs
- AnnotationComponentChooser.cs
- SendKeys.cs
- UnsafeNativeMethodsPenimc.cs
- PinnedBufferMemoryStream.cs
- ProfileService.cs
- XsdDateTime.cs
- ExpandCollapseIsCheckedConverter.cs
- SqlCacheDependencyDatabaseCollection.cs
- SortableBindingList.cs
- AsyncStreamReader.cs
- ConfigDefinitionUpdates.cs
- RowToParametersTransformer.cs
- BatchWriter.cs
- ExpressionQuoter.cs
- thaishape.cs
- ComponentEvent.cs
- DefaultPropertyAttribute.cs
- DataSourceBooleanViewSchemaConverter.cs
- complextypematerializer.cs
- MailMessageEventArgs.cs
- LinkArea.cs
- SignedInfo.cs
- HtmlHistory.cs
- DoubleUtil.cs
- EntityEntry.cs
- SharedDp.cs
- CommandID.cs
- DBPropSet.cs
- _LoggingObject.cs
- AuthenticatingEventArgs.cs
- SqlParameterCollection.cs
- DBCSCodePageEncoding.cs
- PatternMatcher.cs
- SupportingTokenProviderSpecification.cs
- SecurityHeaderElementInferenceEngine.cs
- CommandDesigner.cs
- StringAttributeCollection.cs
- HtmlContainerControl.cs
- DateTimeOffsetAdapter.cs
- HttpServerUtilityBase.cs
- SchemaImporterExtensionElement.cs
- DivideByZeroException.cs
- UIElementIsland.cs
- BinaryObjectReader.cs
- ContextMarshalException.cs
- WindowsNonControl.cs
- CriticalHandle.cs
- ProvideValueServiceProvider.cs
- RootBrowserWindowAutomationPeer.cs
- IsolatedStorageFileStream.cs
- CustomCategoryAttribute.cs
- DBSchemaTable.cs
- AutomationEventArgs.cs
- Int32Collection.cs
- SponsorHelper.cs
- WeakHashtable.cs
- HwndSourceKeyboardInputSite.cs
- FormsAuthentication.cs
- XmlKeywords.cs
- ConnectionPoolManager.cs
- XmlIlGenerator.cs
- AssemblyGen.cs
- Int16AnimationUsingKeyFrames.cs
- CoreSwitches.cs
- SpnegoTokenProvider.cs
- XmlSchemaException.cs
- ProfileSection.cs
- FilterQuery.cs
- PropertySegmentSerializationProvider.cs
- HttpListenerResponse.cs
- Thread.cs
- StyleCollectionEditor.cs
- Thumb.cs
- LocationUpdates.cs
- WsrmTraceRecord.cs
- TypeDependencyAttribute.cs
- SectionRecord.cs
- AtomicFile.cs
- BaseTemplateCodeDomTreeGenerator.cs
- InstanceDataCollection.cs
- BitmapImage.cs
- DSASignatureDeformatter.cs
- NameGenerator.cs
- BuildResult.cs
- SafeCryptoHandles.cs
- EncodingTable.cs
- ClientReliableChannelBinder.cs
- TextOutput.cs
- unsafeIndexingFilterStream.cs
- XmlSchemaExporter.cs
- ReflectEventDescriptor.cs
- hwndwrapper.cs
- Console.cs
- NullableDoubleAverageAggregationOperator.cs
- NetworkInformationPermission.cs