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
- RoutedEventConverter.cs
- RegisteredArrayDeclaration.cs
- XmlIlGenerator.cs
- PolyQuadraticBezierSegmentFigureLogic.cs
- GridItem.cs
- MemoryFailPoint.cs
- SafeNativeMethods.cs
- DataGridPagerStyle.cs
- WorkflowOperationInvoker.cs
- StreamGeometry.cs
- SerializationObjectManager.cs
- InputReportEventArgs.cs
- PerformanceCounter.cs
- PatternMatcher.cs
- DSASignatureFormatter.cs
- EventLogPermissionEntry.cs
- Int64AnimationUsingKeyFrames.cs
- ConversionValidationRule.cs
- PackageController.cs
- RecipientInfo.cs
- KeyEventArgs.cs
- FixedPageAutomationPeer.cs
- OleStrCAMarshaler.cs
- VisualStyleRenderer.cs
- MaskedTextProvider.cs
- SafeFileHandle.cs
- PointCollection.cs
- BindingMAnagerBase.cs
- DataObjectEventArgs.cs
- FullTextBreakpoint.cs
- CharacterString.cs
- TableLayoutCellPaintEventArgs.cs
- WorkflowMarkupSerializer.cs
- CodeVariableDeclarationStatement.cs
- StrokeCollectionConverter.cs
- ActivitySurrogate.cs
- QueryContinueDragEventArgs.cs
- CommandID.cs
- HttpCookie.cs
- EtwTrace.cs
- BeginEvent.cs
- PackagingUtilities.cs
- PenThreadWorker.cs
- Panel.cs
- recordstatefactory.cs
- OrderByLifter.cs
- SchemaElement.cs
- WindowsSysHeader.cs
- SplineQuaternionKeyFrame.cs
- DecoderFallback.cs
- XmlQueryCardinality.cs
- PersistenceParticipant.cs
- TrackingExtract.cs
- dbdatarecord.cs
- securitymgrsite.cs
- ListViewGroupConverter.cs
- FixedSOMLineCollection.cs
- Base64Encoder.cs
- precedingquery.cs
- ArrayConverter.cs
- NameScopePropertyAttribute.cs
- ProgressBarAutomationPeer.cs
- ObjectStateEntryDbUpdatableDataRecord.cs
- CacheEntry.cs
- XmlSiteMapProvider.cs
- XmlSchemaComplexContentExtension.cs
- RenderContext.cs
- ComponentEditorForm.cs
- StringUtil.cs
- SQLBytesStorage.cs
- PingOptions.cs
- SegmentInfo.cs
- DocumentReferenceCollection.cs
- RequestDescription.cs
- WebPartVerbCollection.cs
- WSAddressing10ProblemHeaderQNameFault.cs
- Compress.cs
- GlyphsSerializer.cs
- NodeFunctions.cs
- FixedSOMSemanticBox.cs
- RootContext.cs
- XmlSchemaType.cs
- DataRowView.cs
- InfoCardRSAOAEPKeyExchangeDeformatter.cs
- PtsCache.cs
- LayoutSettings.cs
- WebPartChrome.cs
- QueryCursorEventArgs.cs
- ParseHttpDate.cs
- SafeArchiveContext.cs
- AutomationPropertyInfo.cs
- WaveHeader.cs
- ObjectQuery.cs
- StaticSiteMapProvider.cs
- ExpandCollapseProviderWrapper.cs
- SchemaInfo.cs
- TraceLevelHelper.cs
- GridItemProviderWrapper.cs
- PageSetupDialog.cs
- CodeBlockBuilder.cs