ItemsRepeater.ItemsSource プロパティ
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
ItemsRepeater のコンテンツの生成に使用されるオブジェクト ソースを取得または設定します。
このドキュメントは、UWP 用 WinUI 2 に適用されます (Windows アプリ SDKの WinUI の場合は、Windows アプリ SDK名前空間を参照してください)。
public:
property Platform::Object ^ ItemsSource { Platform::Object ^ get(); void set(Platform::Object ^ value); };
/// [get: Microsoft.UI.Xaml.CustomAttributes.MUXPropertyChangedCallback(enable=true)]
/// [set: Microsoft.UI.Xaml.CustomAttributes.MUXPropertyChangedCallback(enable=true)]
IInspectable ItemsSource();
void ItemsSource(IInspectable value);
/// [Microsoft.UI.Xaml.CustomAttributes.MUXPropertyChangedCallback(enable=true)]
/// [get: Microsoft.UI.Xaml.CustomAttributes.MUXPropertyChangedCallback(enable=true)]
/// [set: Microsoft.UI.Xaml.CustomAttributes.MUXPropertyChangedCallback(enable=true)]
IInspectable ItemsSource();
void ItemsSource(IInspectable value);
public object ItemsSource { [Microsoft.UI.Xaml.CustomAttributes.MUXPropertyChangedCallback(enable=true)] get; [Microsoft.UI.Xaml.CustomAttributes.MUXPropertyChangedCallback(enable=true)] set; }
[Microsoft.UI.Xaml.CustomAttributes.MUXPropertyChangedCallback(enable=true)]
public object ItemsSource { [Microsoft.UI.Xaml.CustomAttributes.MUXPropertyChangedCallback(enable=true)] get; [Microsoft.UI.Xaml.CustomAttributes.MUXPropertyChangedCallback(enable=true)] set; }
Public Property ItemsSource As Object
プロパティ値
ItemsRepeater のコンテンツを生成するために使用される オブジェクト。 既定値は null です。
- 属性
-
Microsoft.UI.Xaml.CustomAttributes.MUXPropertyChangedCallbackAttribute
注釈
項目のコンテンツを生成するために使用するコレクションを指定するには、ItemsSource プロパティを使用します。 IEnumerable を実装する任意の種類に ItemsSource を設定することができます。 データ ソースによって実装される追加のコレクション インターフェイスで、データを操作するために ItemsRepeater で使用できる機能が決定されます。
このリストには使用可能なインターフェイスと、それぞれの使用を検討するタイミングが示されています。
Ienumerable<T> (.NET) / IIterable<T>
小規模の静的なデータ セットで使用できます。
データ ソースでは、少なくとも IEnumerable / IIterable インターフェイスを実装する必要があります。 サポートされているのがこれだけである場合、コントロールで一度すべてのものが反復処理されると、インデックス値を使用して項目にアクセスするために使用できるコピーが作成されます。
IReadonlyList<T> (.NET) / IVectorView<T>
静的な読み取り専用のデータ セットで使用できます。
インデックスを使用してコントロールで項目にアクセスできるようにし、内部の冗長コピーの回避を可能にします。
Ilist<T> (.NET) / IVector<T>
静的なデータ セットで使用できます。
インデックスを使用してコントロールで項目にアクセスできるようにし、内部の冗長コピーの回避を可能にします。
警告: INotifyCollectionChanged を実装せずに list/vector を変更した場合、UI では反映されません。
System.Collections.Specialized.INotifyCollectionChanged
変更通知をサポートすることをお勧めします。
コントロールで、データ ソース内の変更を監視して対応できるようにし、これらの変更を UI に反映できるようにします。
-
変更通知がサポートされます
INotifyCollectionChanged インターフェイスと同様、これにより、コントロールでデータ ソース内の変更を監視し、対応できるようになります。
警告: Windows.Foundation.IObservableVector<T> では '移動' アクションはサポートされません。 そのため、UI で項目の表示状態が失われる可能性があります。 たとえば、現在選択されているか、'削除' の後、'追加' によって移動が行われた場所にフォーカスがあるか、あるいはその両方の状態の項目のフォーカスが失われ、選択できなくなります。
Platform.Collections.Vector<T> では IObservableVector<T> が使用され、これと同じ制限があります。 'Move' アクションのサポートが必要な場合は、上記の INotifyCollectionChanged インターフェイスを使用します。 .NET ObservableCollection<T> クラスでは INotifyCollectionChanged が使用されます。
-
一意識別子を各項目に関連付けることができる場合。 コレクション変更アクションとして 'リセット' を使用する場合にお勧めします。
コントロールで、INotifyCollectionChanged または IObservableVector イベントの一部としてハード 'リセット' アクションを受信した後、既存の UI を非常に効率的に回復できるようにします。 リセットを受信した後、コントロールでは、既に作成されている要素に現在のデータを関連付けるために、指定された一意の ID が使用されます。 キーをインデックスにマップしない場合、コントロールでは、データの UI の作成を最初からやり直す必要があると見なす必要があります。
IKeyIndexMapping 以外の、上記のインターフェイスでは、ItemsRepeater で、ListView や GridView の場合と同じ動作が提供されます。
ItemsSource の次のインターフェイスでは、ListView および GridView コントロールで特別な機能が有効になりますが、現在、ItemsRepeater で影響はありません。