ItemsRepeater.ItemsSource 属性
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
获取或设置用于生成 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
属性值
用于生成 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 中。
-
支持更改通知
与 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 无效: