Share via


ItemsRepeater.ItemsSource 属性

定义

获取或设置用于生成 ItemsRepeater 内容的对象源。

本文档适用于Windows 应用 SDK中的 WinUI 2 for UWP (for 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

属性值

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<T> 不支持“移动”操作。 这可能会导致项的 UI 失去其视觉状态。 例如,某个项当前处于选中状态并且/或者有焦点,当通过“删除”和“添加”操作对其进行移动时,该项会失去焦点,不再处于选中状态。

      Platform.Collections.Vector<T> 使用 IObservableVector<T> 并具有这种相同的限制。 如果需要支持“Move”操作,请使用上面所述的 INotifyCollectionChanged 接口。 .NET ObservableCollection<T> 类使用 INotifyCollectionChanged

  • IKeyIndexMapping

    • 当唯一标识符可以与每个项关联时使用。 将“重置”用作集合更改操作时,建议使用此接口。

      使控件在 INotifyCollectionChangedIObservableVector 事件过程中收到硬性“重置”操作后能够极高效地恢复现有 UI。 在收到重置后,控件会使用提供的唯一 ID 将当前数据与其已创建的元素相关联。 如果没有用于索引映射的键,控件将不得不假定:它在根据数据创建 UI 时需要从头开始。

上面列出的接口(除 IKeyIndexMapping 外)在 ItemsRepeater 中提供的行为与其在 ListView 和 GridView 中提供的行为相同。

ItemsSource 上的以下接口可以在 ListView 和 GridView 控件中实现特殊功能,但目前对 ItemsRepeater 无效:

适用于