次の方法で共有


DataTemplateSelector クラス

定義

データ オブジェクトとコンテナーに基づいて DataTemplate を選択します。 選択ロジックを実装するには、 OnSelectTemplate(Object, BindableObject) をオーバーライドします。

public ref class DataTemplateSelector abstract : Microsoft::Maui::Controls::DataTemplate
public abstract class DataTemplateSelector : Microsoft.Maui.Controls.DataTemplate
type DataTemplateSelector = class
    inherit DataTemplate
Public MustInherit Class DataTemplateSelector
Inherits DataTemplate
継承
DataTemplateSelector

注釈

アプリケーション開発者は、 OnSelectTemplate(Object, BindableObject) メソッドをオーバーライドして、データ型と親コンテナーの組み合わせに対する一意の DataTemplate を返します。 さらに、 SelectTemplate(Object, BindableObject)の連続する呼び出しで、特定のデータに対して同じ正確なテンプレート インスタンスを返す必要があるため、開発者はこれらの DataTemplate を作成し、コンストラクターのオーバーライドに格納する必要があります。

開発者は、次の点に注意する必要があります。

  • OnSelectTemplate は別の DataTemplateSelector を返す必要はありません。また、次の値を返す必要があります
  • Android プラットフォームは、リスト ビューあたり 20 個のテンプレートに制限されています。
次の例は、基本的な使用方法を示しています。
class MyDataTemplateSelector : DataTemplateSelector
{
    public MyDataTemplateSelector ()
    {
        // Retain instances
        this.templateOne = new DataTemplate (typeof (ViewA));
        this.templateTwo = new DataTemplate (typeof (ViewB));
    }

    protected override DataTemplate OnSelectTemplate (object item, BindableObject container)
    {
        if (item is double)
            return this.templateOne;
        return this.templateTwo;
    }

    private readonly DataTemplate templateOne;
    private readonly DataTemplate templateTwo;
}

コンストラクター

名前 説明
DataTemplateSelector()

データ オブジェクトとコンテナーに基づいて DataTemplate を選択します。 選択ロジックを実装するには、 OnSelectTemplate(Object, BindableObject) をオーバーライドします。

プロパティ

名前 説明
Bindings

テンプレート化された項目に適用するバインドのディクショナリを取得します。

(継承元 DataTemplate)
LoadTemplate

データ オブジェクトとコンテナーに基づいて DataTemplate を選択します。 選択ロジックを実装するには、 OnSelectTemplate(Object, BindableObject) をオーバーライドします。

(継承元 ElementTemplate)
Values

テンプレート化された項目に適用するプロパティ値のディクショナリを取得します。

(継承元 DataTemplate)

メソッド

名前 説明
CreateContent()

XAML インフラストラクチャがデータ テンプレートを読み込み、結果の UI の内容を設定するために使用されます。

(継承元 ElementTemplate)
OnSelectTemplate(Object, BindableObject)

データ オブジェクトとコンテナーに基づいて DataTemplate を選択します。 選択ロジックを実装するには、 OnSelectTemplate(Object, BindableObject) をオーバーライドします。

SelectTemplate(Object, BindableObject)

指定した項目とコンテナーの DataTemplate を返します。

SetBinding(BindableProperty, BindingBase)

テンプレート化された項目のプロパティのバインドを設定します。

(継承元 DataTemplate)
SetValue(BindableProperty, Object)

テンプレート項目のプロパティの静的な値を設定します。

(継承元 DataTemplate)

明示的なインターフェイスの実装

名前 説明
IDataTemplateController.Id

データ オブジェクトとコンテナーに基づいて DataTemplate を選択します。 選択ロジックを実装するには、 OnSelectTemplate(Object, BindableObject) をオーバーライドします。

(継承元 DataTemplate)
IDataTemplateController.IdString

データ オブジェクトとコンテナーに基づいて DataTemplate を選択します。 選択ロジックを実装するには、 OnSelectTemplate(Object, BindableObject) をオーバーライドします。

(継承元 DataTemplate)

拡張メソッド

名前 説明
CreateContent(DataTemplate, Object, BindableObject)

適切なテンプレートを選択し、指定した項目のコンテンツを作成します。

SelectDataTemplate(DataTemplate, Object, BindableObject)

テンプレートが DataTemplateSelectorの場合はセレクター ロジックを呼び出して、適切なテンプレートを返します。

SetBinding(DataTemplate, BindableProperty, String)

指定したプロパティとパスのテンプレートにバインドを作成します。

適用対象