DataTemplateSelector 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
在应用程序级别启用自定义模板选择逻辑。
/// [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
- 继承
- 属性
- 实现
注解
有关详细信息和示例,请参阅 数据模板选择。 有关数据模板的更常规信息,请参阅 DataTemplate 类和 项容器和模板。
基本 DataTemplateSelector 类不用作 XAML 中的对象元素。 但是,派生自定义 DataTemplateSelector 是一种常见方案,映射自定义类及其命名空间/程序集的 xmlns 前缀,然后引用在 XAML 中 Resources 块中定义的自定义类实例。 这使得可以通过 x:Key来引用自定义模板选择器类,并使用该引用来设置 XAML 模板和视觉状态中的属性值,例如 ItemTemplateSelector。
DataTemplateSelector 的可调用方法是两个 SelectTemplate 重载。 DataTemplateSelector 的可重写方法是两个 SelectTemplateCore 重载。 若要定义有效的 DataTemplateSelector 子类,请为 SelectTemplateCore(Object) 和 SelectTemplateCore(Object, DependencyObject)提供实现。 所有这些方法都返回一个 DataTemplate 实例,该实例通常是一个适用于调用以获取它的方法输入的特定选择。
应用代码通常不调用 selectTemplate 方法
例如,引用自定义 DataTemplateSelector 作为 HeaderTemplateSelector 值的示例代码,以及显示 HeaderTemplateSelector 方法的替代的示例代码,请参阅 如何将列表或网格中的项分组。
构造函数
DataTemplateSelector() |
初始化 DataTemplateSelector 类的新实例。 |
方法
GetElement(ElementFactoryGetArgs) |
创建或检索在 selectTemplate |
RecycleElement(ElementFactoryRecycleArgs) |
回收使用 GetElement创建的 UIElement 对象。 |
SelectTemplate(Object, DependencyObject) |
返回给定项和容器的特定 DataTemplate。 |
SelectTemplate(Object) |
返回给定项的特定 DataTemplate。 |
SelectTemplateCore(Object, DependencyObject) |
由派生类实现时,返回给定项或容器的特定 DataTemplate。 |
SelectTemplateCore(Object) |
由派生类实现时,返回给定项或容器的特定 DataTemplate。 |