Share via


ItemsRepeater.ItemsSource 屬性

定義

取得或設定用來產生 ItemsRepeater 內容的物件來源。

本檔適用于 Windows 應用程式 SDK 中適用于 WinUI 的 WinUI 2 for UWP (,請參閱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

屬性值

Object

Platform::Object

IInspectable

物件,用來產生 ItemsRepeater 的內容。 預設值為 null

屬性
Microsoft.UI.Xaml.CustomAttributes.MUXPropertyChangedCallbackAttribute

備註

使用 ItemsSource 屬性以指定要用來產生項目內容的集合。 您可以將 ItemsSource 設為實作 IEnumerable 的任何類型。 資料來源實作的其他集合介面決定可供 ItemsRepeater 與您的資料進行互動的功能。

此清單顯示可用的介面,以及何時使用每個介面。

  • IEnumerable <T > (.NET) / IIterable < T >

    • 可用於小型的靜態資料集。

      資料來源至少必須實作 IEnumerable / IIterable 介面。 如果這是所有支援的項目,那麼控制項將逐一查看所有內容,以建立可用於透過索引值存取項目的複本。

  • IReadonlyList <T > (.NET) / IVectorView < T >

    • 可用於靜態、唯讀的資料集。

      可讓控制項依索引來存取項目,並避免多餘的內部複本。

  • IList <T > (.NET) / IVector < T >

    • 可用於靜態資料集。

      可讓控制項依索引來存取項目,並避免多餘的內部複本。

      警告:在未實作 INotifyCollectionChanged 的情況下,對於清單/向量所做的變更,並不會反映在 UI 中。

  • System.Collections.Specialized.INotifyCollectionChanged

    • 建議支援變更通知。

      讓控制項能夠觀察並回應資料來源中的變更,並在 UI 中反映這些變更。

  • IObservableVector < T>

    • 支援變更通知

      就像 INotifyCollectionChanged 介面,如此可讓控制項觀察並回應資料來源中的變更。

      警告:Windows.Foundation.IObservableVector < 不支援 > 'Move' 動作。 這可能導致項目的 UI 失去可見狀態。 例如,目前已選取的項目及/或該項目的焦點,是在「移除」後接著「新增」來進行移動,這類項目會失去焦點,而且無法再選取。

      Platform.Collections.Vector < T > 使用 IObservableVector < T > ,而且有相同的限制。 如果需要支援 'Move' 動作,請使用上面記載的 INotifyCollectionChanged 介面。 .NET ObservableCollection < T > 類別使用 INotifyCollectionChanged

  • IKeyIndexMapping

    • 當唯一識別碼可以與每個項目相關聯時。 使用「重設」作為集合變更動作時,建議使用。

      收到強制「重設」動作做為 INotifyCollectionChangedIObservableVector 事件的一部分時,可讓控制項非常有效率地復原現有 UI。 收到重設後,控制項將使用提供的唯一識別碼,將目前資料與其建立的元素建立關聯。 如果沒有索引鍵以編製索引對應,控制項必須假設它需要從頭開始為資料建立 UI。

以上列出的介面 (IKeyIndexMapping 除外) 在 ItemsRepeater 中提供與在 ListView 和 GridView 中相同的行為。

在 ItemsSource 的下列介面在 ListView 和 GridView 控制項中啟用特殊功能,但目前對 ItemsRepeater 沒有影響:

適用於