Поделиться через


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 для пользовательского класса и его пространства имен или сборки, а затем ссылки на экземпляр настраиваемого класса, как определено в блоке Resources в XAML. Это позволяет ссылаться на класс пользовательского селектора шаблонов по x:Key и использовать эту ссылку для задания значения свойств, таких как ItemTemplateSelector , в шаблонах XAML и визуальных состояниях.

Вызываемые методы DataTemplateSelector являются двумя перегрузками SelectTemplate . Переопределенными методами DataTemplateSelector являются две перегрузки SelectTemplateCore . Чтобы определить действующий подкласс DataTemplateSelector, предоставьте реализации для SelectTemplateCore(Object) и SelectTemplateCore(Object, DependencyObject). Все эти методы возвращают экземпляр DataTemplate , который обычно является определенным выбором, подходящим для входных данных метода, который был вызван для его получения.

Код приложения обычно не вызывает методы SelectTemplate ; методы существуют таким образом, что инфраструктура может вызывать их при выборе правильных шаблонов на основе экземпляра DataTemplateSelector из значения свойства , например ItemsControl.ItemsTemplateSelector.

Пример XAML, который ссылается на настраиваемый DataTemplateSelector в качестве значения HeaderTemplateSelector , и пример кода, в который показаны переопределения для методов HeaderTemplateSelector , см. в разделе Группирование элементов в списке или сетке.

Конструкторы

DataTemplateSelector()

Инициализирует новый экземпляр класса DataTemplateSelector .

Методы

GetElement(ElementFactoryGetArgs)

Создает или извлекает существующий экземпляр объекта UIElement , объявленного в объекте DataTemplate , возвращенном SelectTemplate.

RecycleElement(ElementFactoryRecycleArgs)

Перезапускает объект UIElement , созданный с помощью GetElement.

SelectTemplate(Object)

Возвращает определенный объект DataTemplate для заданного элемента.

SelectTemplate(Object, DependencyObject)

Возвращает определенный объект DataTemplate для заданного элемента и контейнера.

SelectTemplateCore(Object)

При реализации в производном классе возвращает определенный объект DataTemplate для заданного элемента или контейнера.

SelectTemplateCore(Object, DependencyObject)

При реализации в производном классе возвращает определенный объект DataTemplate для заданного элемента или контейнера.

Применяется к

См. также раздел