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
- NegatedConstant.cs
- SecurityContextTokenCache.cs
- Point.cs
- xamlnodes.cs
- ColorConverter.cs
- CodeRemoveEventStatement.cs
- Ops.cs
- DocumentCollection.cs
- EmptyCollection.cs
- DataContractSerializerOperationGenerator.cs
- ZipIORawDataFileBlock.cs
- NCryptSafeHandles.cs
- _TransmitFileOverlappedAsyncResult.cs
- PageContentAsyncResult.cs
- DependencyPropertyValueSerializer.cs
- SettingsBindableAttribute.cs
- AttributeCollection.cs
- activationcontext.cs
- SHA256Managed.cs
- WindowsFormsLinkLabel.cs
- PolicyManager.cs
- SqlRetyper.cs
- ListViewInsertionMark.cs
- HashRepartitionStream.cs
- HttpModuleCollection.cs
- input.cs
- StylusCaptureWithinProperty.cs
- BigInt.cs
- OdbcHandle.cs
- Binding.cs
- TcpChannelListener.cs
- SystemNetHelpers.cs
- TabOrder.cs
- SortDescriptionCollection.cs
- DetailsViewUpdatedEventArgs.cs
- EUCJPEncoding.cs
- ReadOnlyObservableCollection.cs
- XmlSerializer.cs
- SerialErrors.cs
- RoutedEventHandlerInfo.cs
- AsyncStreamReader.cs
- ObjectSet.cs
- TraceUtils.cs
- NameSpaceEvent.cs
- SspiWrapper.cs
- AttributeCollection.cs
- ToolStripControlHost.cs
- CustomTrackingRecord.cs
- ProviderConnectionPoint.cs
- RelatedImageListAttribute.cs
- BitmapEncoder.cs
- TextAnchor.cs
- CollectionBuilder.cs
- PersistenceTypeAttribute.cs
- OleDbTransaction.cs
- RawMouseInputReport.cs
- Inflater.cs
- SymLanguageType.cs
- BasicBrowserDialog.designer.cs
- MD5.cs
- DataSet.cs
- EndpointDiscoveryMetadataCD1.cs
- ToolStripComboBox.cs
- FontNamesConverter.cs
- ExceptionTranslationTable.cs
- StreamReader.cs
- DecimalAnimation.cs
- ToolboxComponentsCreatedEventArgs.cs
- ClearTypeHintValidation.cs
- Rights.cs
- CqlGenerator.cs
- DataGridViewAutoSizeColumnModeEventArgs.cs
- LeaseManager.cs
- StylusPoint.cs
- FlowDocumentPaginator.cs
- DiscoveryClientReferences.cs
- CodeMemberField.cs
- GPPOINTF.cs
- SamlAuthorityBinding.cs
- CodePrimitiveExpression.cs
- SetterBaseCollection.cs
- TemplatePropertyEntry.cs
- NetworkCredential.cs
- SqlClientMetaDataCollectionNames.cs
- RuntimeEnvironment.cs
- LineGeometry.cs
- GeneralTransform3DTo2DTo3D.cs
- XmlHierarchyData.cs
- CommandID.cs
- WebPartDescriptionCollection.cs
- ServiceNotStartedException.cs
- AuthenticationServiceManager.cs
- WindowsSlider.cs
- DbInsertCommandTree.cs
- FunctionUpdateCommand.cs
- InternalBase.cs
- TiffBitmapDecoder.cs
- DecimalStorage.cs
- XmlSchemaInfo.cs
- EDesignUtil.cs