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
- ImageList.cs
- Content.cs
- CursorConverter.cs
- CodeTypeDeclaration.cs
- StreamUpgradeAcceptor.cs
- XmlILStorageConverter.cs
- HtmlButton.cs
- ScrollEvent.cs
- DataGridRow.cs
- Item.cs
- JoinCqlBlock.cs
- WebChannelFactory.cs
- MetadataCacheItem.cs
- NonVisualControlAttribute.cs
- ScriptReferenceEventArgs.cs
- CodeChecksumPragma.cs
- AdornerPresentationContext.cs
- CDSsyncETWBCLProvider.cs
- ProxyWebPart.cs
- Propagator.JoinPropagator.JoinPredicateVisitor.cs
- DockingAttribute.cs
- CheckedListBox.cs
- WebControl.cs
- DecodeHelper.cs
- TreeViewItemAutomationPeer.cs
- TypeLoadException.cs
- PropertyValueUIItem.cs
- TableCellCollection.cs
- RoleManagerModule.cs
- ConnectionOrientedTransportChannelFactory.cs
- UndoUnit.cs
- ListCollectionView.cs
- SqlCachedBuffer.cs
- Query.cs
- InternalTypeHelper.cs
- DeviceContexts.cs
- SelectionChangedEventArgs.cs
- DataGridViewColumn.cs
- MetadataItemEmitter.cs
- _SafeNetHandles.cs
- CodeArgumentReferenceExpression.cs
- IDispatchConstantAttribute.cs
- HierarchicalDataBoundControl.cs
- HwndTarget.cs
- ExpandSegment.cs
- TextEditorLists.cs
- ZipIOExtraFieldElement.cs
- CodeCatchClauseCollection.cs
- DiagnosticStrings.cs
- SQLDecimalStorage.cs
- HtmlFormWrapper.cs
- TargetPerspective.cs
- LoginDesigner.cs
- Guid.cs
- ComplexLine.cs
- Slider.cs
- WrapperSecurityCommunicationObject.cs
- ContextStack.cs
- AttributeCollection.cs
- HybridDictionary.cs
- DeferrableContentConverter.cs
- BrowserInteropHelper.cs
- PropertyMapper.cs
- filewebrequest.cs
- BackStopAuthenticationModule.cs
- Line.cs
- GenericParameterDataContract.cs
- FixedSOMElement.cs
- EntityProxyTypeInfo.cs
- PluralizationServiceUtil.cs
- Message.cs
- Vector3DCollection.cs
- Group.cs
- HttpRawResponse.cs
- WebPartUserCapability.cs
- XmlDataSourceDesigner.cs
- securitycriticaldataClass.cs
- IFlowDocumentViewer.cs
- IntAverageAggregationOperator.cs
- DrawingContextDrawingContextWalker.cs
- MessageQueueTransaction.cs
- EncoderNLS.cs
- MLangCodePageEncoding.cs
- HttpConfigurationSystem.cs
- RichTextBoxAutomationPeer.cs
- HorizontalAlignConverter.cs
- Site.cs
- WFItemsToSpacerVisibility.cs
- CanonicalXml.cs
- GenerateTemporaryTargetAssembly.cs
- FileUtil.cs
- WebServiceErrorEvent.cs
- OpenFileDialog.cs
- ExtensionQuery.cs
- WorkflowExecutor.cs
- PathTooLongException.cs
- Compiler.cs
- SqlSelectStatement.cs
- GenericXmlSecurityToken.cs
- PrimitiveType.cs