Code:
/ 4.0 / 4.0 / untmp / 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- InputScopeManager.cs
- LinkConverter.cs
- XamlHostingConfiguration.cs
- Publisher.cs
- SerializationUtilities.cs
- WindowsListBox.cs
- ReadOnlyHierarchicalDataSource.cs
- DoubleLinkList.cs
- EditBehavior.cs
- Brush.cs
- ToolStripDropDownMenu.cs
- ProfileBuildProvider.cs
- EditCommandColumn.cs
- DataKeyCollection.cs
- ImageConverter.cs
- InputReferenceExpression.cs
- RevocationPoint.cs
- SharedStatics.cs
- WmlTextBoxAdapter.cs
- BuildDependencySet.cs
- DynamicRendererThreadManager.cs
- RoleService.cs
- SortDescriptionCollection.cs
- ControlIdConverter.cs
- MetadataItemSerializer.cs
- ConnectionConsumerAttribute.cs
- DesignerVerb.cs
- SchemaElementLookUpTableEnumerator.cs
- TreeViewImageGenerator.cs
- AnyAllSearchOperator.cs
- GridSplitterAutomationPeer.cs
- Help.cs
- ComPlusTypeLoader.cs
- FieldValue.cs
- DataService.cs
- DeobfuscatingStream.cs
- OperatorExpressions.cs
- DefaultValueConverter.cs
- FloatUtil.cs
- TimeSpanOrInfiniteValidator.cs
- ObjectParameterCollection.cs
- RootBuilder.cs
- DBSqlParserTable.cs
- MetadataArtifactLoader.cs
- EventProviderClassic.cs
- ToolStripProfessionalLowResolutionRenderer.cs
- PropertyEntry.cs
- MsmqInputChannelListener.cs
- SqlDataSourceStatusEventArgs.cs
- DetailsViewPagerRow.cs
- CookieHandler.cs
- IpcClientManager.cs
- SmiEventSink_DeferedProcessing.cs
- OdbcConnectionHandle.cs
- CodeVariableReferenceExpression.cs
- EnumMember.cs
- TreeNodeBindingDepthConverter.cs
- ConstraintManager.cs
- _SafeNetHandles.cs
- xml.cs
- AsyncCodeActivityContext.cs
- AvTraceDetails.cs
- GregorianCalendarHelper.cs
- OrderingInfo.cs
- Registry.cs
- SplitterPanelDesigner.cs
- XsltSettings.cs
- ConnectionStringEditor.cs
- ItemCheckEvent.cs
- PerspectiveCamera.cs
- ListCollectionView.cs
- Sql8ConformanceChecker.cs
- HtmlMeta.cs
- PipelineComponent.cs
- TimeSpanMinutesConverter.cs
- PreloadedPackages.cs
- ButtonChrome.cs
- QueryConverter.cs
- EntityObject.cs
- CharacterHit.cs
- PeerNameRecord.cs
- InvalidComObjectException.cs
- ToolBarButtonClickEvent.cs
- StructuredType.cs
- PagesSection.cs
- AttachmentCollection.cs
- Animatable.cs
- XPathPatternParser.cs
- XmlEncodedRawTextWriter.cs
- ChangeToolStripParentVerb.cs
- AppDomainShutdownMonitor.cs
- LocationReferenceValue.cs
- ExtensionSurface.cs
- CodeSubDirectoriesCollection.cs
- HtmlContainerControl.cs
- HtmlInputCheckBox.cs
- SHA384.cs
- AbsoluteQuery.cs
- DeferredBinaryDeserializerExtension.cs
- PipelineModuleStepContainer.cs