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
- Timer.cs
- ImageClickEventArgs.cs
- MetadataAssemblyHelper.cs
- TableDetailsCollection.cs
- MailMessageEventArgs.cs
- ListViewItem.cs
- CodeTryCatchFinallyStatement.cs
- PageEventArgs.cs
- ExtenderControl.cs
- EntityKey.cs
- DoubleStorage.cs
- SubclassTypeValidator.cs
- EditingScopeUndoUnit.cs
- DictionarySectionHandler.cs
- Point3DCollection.cs
- ExchangeUtilities.cs
- ProviderConnectionPoint.cs
- SafeNativeMethods.cs
- SortDescriptionCollection.cs
- StorageTypeMapping.cs
- ThreadPool.cs
- MemoryFailPoint.cs
- NoClickablePointException.cs
- SortQueryOperator.cs
- Version.cs
- PropertyMappingExceptionEventArgs.cs
- odbcmetadatacolumnnames.cs
- columnmapfactory.cs
- TextEmbeddedObject.cs
- PlaceHolder.cs
- SolidColorBrush.cs
- SimpleFieldTemplateFactory.cs
- HierarchicalDataSourceControl.cs
- XmlCountingReader.cs
- ResourceSet.cs
- WrapperEqualityComparer.cs
- HighlightVisual.cs
- CompilerGeneratedAttribute.cs
- Figure.cs
- ResourceDisplayNameAttribute.cs
- Lookup.cs
- ExtensionFile.cs
- ZipFileInfo.cs
- BamlBinaryReader.cs
- DataGridTable.cs
- FactoryGenerator.cs
- XmlRawWriter.cs
- documentsequencetextcontainer.cs
- SizeConverter.cs
- _LazyAsyncResult.cs
- LogExtentCollection.cs
- TextStore.cs
- XmlSignificantWhitespace.cs
- WindowsImpersonationContext.cs
- DbConnectionPoolOptions.cs
- AdCreatedEventArgs.cs
- WizardPanel.cs
- CssTextWriter.cs
- CollectionsUtil.cs
- OleDbRowUpdatingEvent.cs
- ConfigXmlComment.cs
- Debugger.cs
- InfocardChannelParameter.cs
- ThreadPool.cs
- ToolboxItem.cs
- EventLogHandle.cs
- FormViewUpdateEventArgs.cs
- RawKeyboardInputReport.cs
- messageonlyhwndwrapper.cs
- CodeRegionDirective.cs
- WebPartPersonalization.cs
- SoapSchemaMember.cs
- CharacterHit.cs
- CallbackDebugBehavior.cs
- SimpleMailWebEventProvider.cs
- wgx_sdk_version.cs
- TextShapeableCharacters.cs
- SHA384Cng.cs
- MergeLocalizationDirectives.cs
- MarkupCompiler.cs
- XamlClipboardData.cs
- CurrentChangingEventArgs.cs
- FontCacheUtil.cs
- FlagsAttribute.cs
- TransformerInfo.cs
- UserMapPath.cs
- _NestedSingleAsyncResult.cs
- StateMachineSubscription.cs
- CodeExporter.cs
- SelectionUIService.cs
- XmlSchemaIdentityConstraint.cs
- StaticContext.cs
- IisTraceWebEventProvider.cs
- _SslSessionsCache.cs
- DispatchOperation.cs
- HelpKeywordAttribute.cs
- IIS7UserPrincipal.cs
- ZipIOFileItemStream.cs
- LogicalTreeHelper.cs
- Transform.cs