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
- JsonStringDataContract.cs
- InputProcessorProfilesLoader.cs
- XsltSettings.cs
- ControlFilterExpression.cs
- ReadContentAsBinaryHelper.cs
- XmlIgnoreAttribute.cs
- COM2PropertyPageUITypeConverter.cs
- ObjectDataProvider.cs
- WindowsStatic.cs
- ExcCanonicalXml.cs
- DataGridViewRowHeightInfoPushedEventArgs.cs
- NamedElement.cs
- PropertyInformationCollection.cs
- ScriptServiceAttribute.cs
- Dynamic.cs
- XmlDictionaryString.cs
- ResourcePart.cs
- FacetChecker.cs
- StylusPoint.cs
- PasswordTextContainer.cs
- SkinBuilder.cs
- JsonCollectionDataContract.cs
- DecryptedHeader.cs
- SimpleApplicationHost.cs
- IncrementalReadDecoders.cs
- CustomMenuItemCollection.cs
- XmlReaderSettings.cs
- HttpApplicationFactory.cs
- Substitution.cs
- ListDesigner.cs
- RoleManagerModule.cs
- SocketException.cs
- MenuEventArgs.cs
- Page.cs
- RenderDataDrawingContext.cs
- CodeStatementCollection.cs
- ListSortDescriptionCollection.cs
- DbProviderSpecificTypePropertyAttribute.cs
- CompilerGlobalScopeAttribute.cs
- EntitySetBase.cs
- HtmlTableCell.cs
- ExceptionNotification.cs
- DecimalKeyFrameCollection.cs
- ControlAdapter.cs
- DataGrid.cs
- SimpleBitVector32.cs
- HwndProxyElementProvider.cs
- Binding.cs
- SubstitutionResponseElement.cs
- ScriptingAuthenticationServiceSection.cs
- WebBrowserPermission.cs
- HtmlInputHidden.cs
- TransferRequestHandler.cs
- DispatcherTimer.cs
- SQLConvert.cs
- JsonFormatReaderGenerator.cs
- WriteableOnDemandStream.cs
- VerificationAttribute.cs
- SqlProviderServices.cs
- AssemblyUtil.cs
- DecimalStorage.cs
- PolicyDesigner.cs
- DrawingServices.cs
- FileDialog.cs
- Scripts.cs
- HighlightVisual.cs
- BaseProcessor.cs
- StringValidatorAttribute.cs
- Pick.cs
- ElementHostAutomationPeer.cs
- MissingMethodException.cs
- SessionStateItemCollection.cs
- BaseDataListActionList.cs
- DispatcherExceptionEventArgs.cs
- columnmapfactory.cs
- CodeExporter.cs
- IItemProperties.cs
- streamingZipPartStream.cs
- ServiceModelExtensionCollectionElement.cs
- LoadMessageLogger.cs
- ProcessingInstructionAction.cs
- _Connection.cs
- DataGridComponentEditor.cs
- DataMemberAttribute.cs
- SHA512Managed.cs
- HandleCollector.cs
- _SpnDictionary.cs
- VectorAnimationBase.cs
- HttpCookieCollection.cs
- Pen.cs
- wgx_exports.cs
- RegionIterator.cs
- IconConverter.cs
- CustomTokenProvider.cs
- TemplateApplicationHelper.cs
- SamlSerializer.cs
- SqlConnectionStringBuilder.cs
- Html32TextWriter.cs
- WindowsFormsSectionHandler.cs
- OleDbDataReader.cs