Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / 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
- WebPartZoneCollection.cs
- QuaternionKeyFrameCollection.cs
- Vector.cs
- TextEditorCopyPaste.cs
- AxHostDesigner.cs
- BinarySecretSecurityToken.cs
- DoubleAnimationUsingPath.cs
- TraceSource.cs
- PopupRoot.cs
- XmlQueryStaticData.cs
- documentsequencetextcontainer.cs
- HierarchicalDataSourceControl.cs
- Win32Interop.cs
- ValidationErrorCollection.cs
- _OSSOCK.cs
- EncodingDataItem.cs
- ScriptingWebServicesSectionGroup.cs
- CharKeyFrameCollection.cs
- Operators.cs
- TypedElement.cs
- SafeNativeMethods.cs
- EdmComplexPropertyAttribute.cs
- LogEntrySerialization.cs
- TypeUsageBuilder.cs
- MatrixCamera.cs
- XmlObjectSerializerReadContextComplexJson.cs
- ConfigViewGenerator.cs
- RemotingService.cs
- CompositeScriptReference.cs
- ScriptBehaviorDescriptor.cs
- TdsParserSessionPool.cs
- DSACryptoServiceProvider.cs
- ControlValuePropertyAttribute.cs
- DataGridViewAutoSizeColumnsModeEventArgs.cs
- Light.cs
- XmlWriterDelegator.cs
- FactoryId.cs
- ViewStateException.cs
- RemoteWebConfigurationHost.cs
- ConsoleTraceListener.cs
- OutputWindow.cs
- ForeignConstraint.cs
- OutputCacheProfileCollection.cs
- PieceDirectory.cs
- CompositionTarget.cs
- SmiSettersStream.cs
- PreservationFileReader.cs
- FileStream.cs
- DefaultObjectMappingItemCollection.cs
- ComponentEditorForm.cs
- ImageBrush.cs
- XhtmlBasicObjectListAdapter.cs
- StateElementCollection.cs
- AttributeCallbackBuilder.cs
- QilPatternVisitor.cs
- MouseButtonEventArgs.cs
- NavigatorInput.cs
- ZipIOExtraFieldPaddingElement.cs
- RemoveStoryboard.cs
- JapaneseCalendar.cs
- SemanticValue.cs
- OleDbEnumerator.cs
- HttpCapabilitiesSectionHandler.cs
- CapabilitiesSection.cs
- OdbcEnvironmentHandle.cs
- ArglessEventHandlerProxy.cs
- RunWorkerCompletedEventArgs.cs
- ImageListImage.cs
- RayMeshGeometry3DHitTestResult.cs
- ScrollViewer.cs
- AdapterDictionary.cs
- CommentGlyph.cs
- xmlglyphRunInfo.cs
- EdmComplexPropertyAttribute.cs
- ComplexObject.cs
- IsolatedStorageException.cs
- PathFigure.cs
- ErrorHandler.cs
- StringConverter.cs
- MLangCodePageEncoding.cs
- TableAdapterManagerNameHandler.cs
- SqlInternalConnectionSmi.cs
- PowerStatus.cs
- WorkflowMessageEventArgs.cs
- QuadraticBezierSegment.cs
- TreeViewAutomationPeer.cs
- StaticTextPointer.cs
- DataTableTypeConverter.cs
- UIPropertyMetadata.cs
- FormsAuthenticationEventArgs.cs
- ItemCheckEvent.cs
- ContainerControl.cs
- ApplyTemplatesAction.cs
- _OSSOCK.cs
- IdentityElement.cs
- WriteTimeStream.cs
- TreeNodeSelectionProcessor.cs
- AudioDeviceOut.cs
- MemberInfoSerializationHolder.cs
- PeerConnector.cs