Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / wpf / src / 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, 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 (XmlHelper.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 (XmlHelper.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
- RoutedEventArgs.cs
- AddingNewEventArgs.cs
- BamlRecordHelper.cs
- GraphicsContext.cs
- WebHttpDispatchOperationSelector.cs
- UshortList2.cs
- VolatileResourceManager.cs
- FontFamilyValueSerializer.cs
- prompt.cs
- MatrixKeyFrameCollection.cs
- SqlReorderer.cs
- EdmSchemaError.cs
- ChannelPoolSettingsElement.cs
- SystemTcpConnection.cs
- RelationshipDetailsCollection.cs
- StylusTip.cs
- FormViewInsertEventArgs.cs
- EventSetter.cs
- OperationContext.cs
- PointKeyFrameCollection.cs
- ExchangeUtilities.cs
- GroupQuery.cs
- DesignerCategoryAttribute.cs
- UriScheme.cs
- VerificationAttribute.cs
- StaticContext.cs
- DataSourceCacheDurationConverter.cs
- Panel.cs
- Root.cs
- DataGridParentRows.cs
- TypeGeneratedEventArgs.cs
- FieldAccessException.cs
- ListBox.cs
- CodeTypeConstructor.cs
- ExpressionVisitor.cs
- UnitySerializationHolder.cs
- SimpleBitVector32.cs
- RenderDataDrawingContext.cs
- PersonalizationDictionary.cs
- NavigationProgressEventArgs.cs
- MsmqIntegrationAppDomainProtocolHandler.cs
- ExtenderControl.cs
- SQLResource.cs
- QilFactory.cs
- EntryIndex.cs
- ReferenceCountedObject.cs
- PriorityBindingExpression.cs
- LowerCaseStringConverter.cs
- PeerTransportElement.cs
- LayoutExceptionEventArgs.cs
- diagnosticsswitches.cs
- MatrixCamera.cs
- ErrorHandler.cs
- CompensationTokenData.cs
- RadioButtonAutomationPeer.cs
- SchemaCollectionPreprocessor.cs
- WebPartManager.cs
- InvalidWorkflowException.cs
- GeneratedCodeAttribute.cs
- SafeFileMappingHandle.cs
- MessageSecurityOverTcpElement.cs
- GroupBox.cs
- GroupBoxRenderer.cs
- PixelShader.cs
- PolyBezierSegmentFigureLogic.cs
- Win32MouseDevice.cs
- CharacterHit.cs
- ForceCopyBuildProvider.cs
- TreeIterator.cs
- ExpanderAutomationPeer.cs
- LoadWorkflowByKeyAsyncResult.cs
- InvokeDelegate.cs
- XpsFilter.cs
- PropertyFilterAttribute.cs
- Function.cs
- ILGenerator.cs
- HostSecurityManager.cs
- ReferentialConstraint.cs
- TriState.cs
- XmlDataSourceDesigner.cs
- SessionStateSection.cs
- OleDbConnectionPoolGroupProviderInfo.cs
- TemplateModeChangedEventArgs.cs
- TextInfo.cs
- UserControl.cs
- AppearanceEditorPart.cs
- Quad.cs
- IPEndPointCollection.cs
- Int32AnimationUsingKeyFrames.cs
- MouseGestureConverter.cs
- Image.cs
- DependencyStoreSurrogate.cs
- StateChangeEvent.cs
- PropertyTab.cs
- Transform.cs
- UserMapPath.cs
- Regex.cs
- ApplicationActivator.cs
- MultipartContentParser.cs
- RenderData.cs