DataTemplateSelector 类

定义

在应用程序级别启用自定义模板选择逻辑。

/// [Windows.Foundation.Metadata.ContractVersion(Microsoft.UI.Xaml.WinUIContract, 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(Microsoft.UI.Xaml.WinUIContract), 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
Implements IElementFactory
See Remarks
继承
Object IInspectable DataTemplateSelector
属性
实现

注解

有关数据模板的详细信息,请参阅 DataTemplate 类和 项容器和模板

基 DataTemplateSelector 类不用作 XAML 中的对象元素。 但是,常见方案是派生自定义 DataTemplateSelector,映射自定义类及其命名空间/程序集的 xmlns 前缀,然后引用 XAML 中资源 块中定义的自定义类的实例。 这样就可以通过 x:Key 引用自定义模板选择器类,并使用该引用在 XAML 模板和视觉状态中设置属性(如 ItemTemplateSelector )的值。

DataTemplateSelector 的可调用方法是两个 SelectTemplate 重载。 DataTemplateSelector 的可重写方法是两个 SelectTemplateCore 重载。 若要定义有效的 DataTemplateSelector 子类,请为 SelectTemplateCore (Object) SelectTemplateCore (Object、DependencyObject) 提供实现。 所有这些方法都返回一个 DataTemplate 实例,该实例通常是一个特定的选择,适合用于获取它而调用的方法的输入。

应用代码通常不调用 SelectTemplate 方法;方法存在,以便基础结构可以调用它,同时根据使用属性值(如 ItemsControl.ItemsTemplateSelector)的 DataTemplateSelector 实例选择正确的模板。

有关引用自定义 DataTemplateSelector 作为 HeaderTemplateSelector 值的示例 XAML,以及显示 HeaderTemplateSelector 方法重写的示例代码,请参阅 如何对列表或网格中的项进行分组

构造函数

DataTemplateSelector()

初始化 DataTemplateSelector 类的新实例。

方法

GetElement(ElementFactoryGetArgs)

创建或检索 SelectTemplate 返回的 DataTemplate 中声明的 UIElement 对象的现有实例。

RecycleElement(ElementFactoryRecycleArgs)

回收使用 GetElement 创建的 UIElement 对象。

SelectTemplate(Object)

返回给定项的特定 DataTemplate

SelectTemplate(Object, DependencyObject)

返回给定项和容器的特定 DataTemplate

SelectTemplateCore(Object)

当由派生类实现时,返回给定项或容器的特定 DataTemplate

SelectTemplateCore(Object, DependencyObject)

当由派生类实现时,返回给定项或容器的特定 DataTemplate

适用于

另请参阅