共用方式為


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 中 Resources 區塊中所定義的自定義類別實例。 這可讓您透過 x:Key來參考自定義範本選取器類別,並使用該參考來設定 XAML 範本和視覺狀態中 ItemTemplateSelector 等屬性值。

DataTemplateSelector 的可呼叫方法是 SelectTemplate 多載的兩個 。 DataTemplateSelector 的可覆寫方法是 SelectTemplateCore 多載的兩個 。 若要定義有效的 DataTemplateSelector 子類別,請提供 SelectTemplateCore(Object)SelectTemplateCore(Object, DependencyObject)的實作。 所有這些方法都會傳回 DataTemplate 實例,這個實例通常是適合呼叫以取得它之方法輸入的特定選擇。

應用程式程式代碼通常不會呼叫 selectTemplate 方法 ;方法存在,因此基礎結構可以在根據使用 DataTemplateSelector 實例從屬性值選擇正確的範本時呼叫它,例如 ItemsControl.ItemsTemplateSelector

例如,參考自定義 DataTemplateSelector 做為 HeaderTemplateSelector 值的 XAML,以及顯示 HeaderTemplateSelector 方法覆寫的範例程式代碼,請參閱 如何將清單或方格中的專案分組

建構函式

DataTemplateSelector()

初始化 DataTemplateSelector 類別的新實例。

方法

GetElement(ElementFactoryGetArgs)

建立或擷取 UIElement 對象的現有實例,DataTemplate 由 selectTemplate傳回。

RecycleElement(ElementFactoryRecycleArgs)

回收使用 getElement getElement所建立 UIElement 物件。

SelectTemplate(Object, DependencyObject)

傳回指定專案和容器的特定 DataTemplate

SelectTemplate(Object)

傳回指定專案的特定 DataTemplate

SelectTemplateCore(Object, DependencyObject)

由衍生類別實作時,傳回指定專案或容器的特定 DataTemplate

SelectTemplateCore(Object)

由衍生類別實作時,傳回指定專案或容器的特定 DataTemplate

適用於

另請參閱