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 類別與 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) |
當由衍生類別實作時,會回傳給定項目或容器的特定 資料範本 。 |