DataTemplateSelector Class
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Enables custom template selection logic at the application level.
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class DataTemplateSelector
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class DataTemplateSelector : IElementFactory
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public class DataTemplateSelector
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public class DataTemplateSelector : IElementFactory
Public Class DataTemplateSelector
Public Class DataTemplateSelector
Implements IElementFactory
See Remarks
- Inheritance
- Attributes
- Implements
Windows requirements
Device family |
Windows 10 (introduced in 10.0.10240.0)
|
API contract |
Windows.Foundation.UniversalApiContract (introduced in v1.0)
|
Remarks
For more info about data templates, see the DataTemplate class and Item containers and templates.
The base DataTemplateSelector class is not used as an object element in XAML. However, it is a common scenario to derive a custom DataTemplateSelector, map an xmlns
prefix for the custom class and its namespace/assembly, and then refer to an instance of the custom class as defined in a Resources block in XAML. This makes it possible to refer to the custom template selector class by x:Key
, and use that reference to set the value of properties such as ItemTemplateSelector in XAML templates and visual states.
The callable methods of DataTemplateSelector are the two SelectTemplate overloads. The overridable methods of DataTemplateSelector are the two SelectTemplateCore overloads. To define an effective DataTemplateSelector subclass, provide implementations for SelectTemplateCore(Object) and SelectTemplateCore(Object, DependencyObject). All these methods return a DataTemplate instance that's typically a specific choice that's appropriate for the inputs of the method that was called to obtain it.
App code typically doesn't call SelectTemplate methods; the methods exists so that the infrastructure can call it while choosing the correct templates based on using a DataTemplateSelector instance from a property value such as ItemsControl.ItemsTemplateSelector.
Version history
Windows version | SDK version | Value added |
---|---|---|
1809 | 17763 | GetElement |
1809 | 17763 | RecycleElement |
Constructors
DataTemplateSelector() |
Initializes a new instance of the DataTemplateSelector class. |
Methods
GetElement(ElementFactoryGetArgs) |
Creates or retrieves an existing instance of the UIElement object declared in the DataTemplate returned by SelectTemplate. |
RecycleElement(ElementFactoryRecycleArgs) |
Recycles a UIElement object that was created using GetElement. |
SelectTemplate(Object, DependencyObject) |
Returns a specific DataTemplate for a given item and container. |
SelectTemplate(Object) |
Returns a specific DataTemplate for a given item. |
SelectTemplateCore(Object, DependencyObject) |
When implemented by a derived class, returns a specific DataTemplate for a given item or container. |
SelectTemplateCore(Object) |
When implemented by a derived class, returns a specific DataTemplate for a given item or container. |