語言

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 類別與 Item 容器與範本。

基礎的 DataTemplateSelector 類別在 XAML 中並未被用作物件元素。 然而,常見的情況是先衍生出自訂 DataTemplateSelector,為自訂類別及其命名空間/組合語言映射 xmlns 前綴,然後參考 XAML 中定義的 Resources 區塊中的自訂類別實例。 這使得可以透過 x:Key 來參考自訂模板選擇器類別,並利用該參考設定屬性的值,例如 XAML 模板中的 ItemTemplateSelector 與視覺狀態。

DataTemplateSelector 可呼叫的方法為兩個 SelectTemplate 覆載。 DataTemplateSelector 可覆寫的方法為兩個 SelectTemplateCore 覆載。 要定義有效的 DataTemplateSelector 子類別,請提供 SelectTemplateCore(Object) 和 SelectTemplateCore(Object, DependencyObject) 的實作。 所有這些方法都會回傳一個 DataTemplate 實例,通常是針對該方法輸入的具體選擇。

應用程式程式碼通常不會呼叫 SelectTemplate 方法;這些方法的存在是為了讓基礎架構能夠呼叫它,並根據屬性值(如 ItemsControl.ItemsTemplateSelector)中的 DataTemplateSelector 實例來選擇正確的範本。

例如,XAML 以自訂 DataTemplateSelector 作為 HeaderTemplateSelector 值參考,以及展示 HeaderTemplateSelector 方法覆寫的範例程式碼,請參見 如何將項目分組於清單或網格中。

建構函式

名稱 Description
DataTemplateSelector()

初始化 DataTemplateSelector 類別的新實例。

方法

名稱 Description
GetElement(ElementFactoryGetArgs)

建立或擷取 SelectTemplate 回傳的 DataTemplate 中宣告的 UIElement 物件的現有實例。

RecycleElement(ElementFactoryRecycleArgs)

回收使用 GetElement 建立的 UIElement 物件。

SelectTemplate(Object, DependencyObject)

會回傳特定項目和容器的特定 DataTemplate 。

SelectTemplate(Object)

會回傳特定項目的 DataTemplate 。

SelectTemplateCore(Object, DependencyObject)

當由衍生類別實作時,會回傳給定項目或容器的特定 資料範本 。

SelectTemplateCore(Object)

當由衍生類別實作時,會回傳給定項目或容器的特定 資料範本 。

適用於

另請參閱