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 實例從 ItemsControl.ItemsTemplateSelector 等屬性值中選擇正確的範本時呼叫它。
例如,參考自定義 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 。 |