ObservableCollection and LongListSelector

本文关键字:LongListSelector and ObservableCollection | 更新日期: 2023-09-27 18:30:34

我的应用程序包括在五个页面之间导航。每个页面都包含一个列表。所有列表都显示等效的内容,使用 LongListSelector,并绑定一个 ObservableCollection:

public class ItemViewModel : INotifyPropertyChanged
{
    ...
}
public class MainViewModel : INotifyPropertyChanged
{
    ...
    public ObservableCollection<ItemViewModel> Items { get; private set; }
    ...
}

我只想维护一个 xaml 页面:所有列表必须始终看起来相同,我不想每次修饰设计时都更改 5 页。因此,我创建了另外 5 个对象 ObservableCollection,当我更改页面时,对象 Items 设置为其中一个。

但是自从我这样做了,我就不再显示任何内容,就好像列表是空的一样。我放了一个断点来检查这些列表是否已填满,它们确实已填满。

我首先尝试填充项目本身。它将显示。但是以下说明会导致从屏幕上清除列表:

this.Items = this.ItemsList1;

我尝试实现事件 CollectionChanged,但它没有任何变化。

是错误的使用方式吗?有没有另一种方法可以在同一页面中绑定多组数据?

ObservableCollection and LongListSelector

当您更改属性时,您尚未引发PropertyChanged事件Items。要么添加一个支持字段并在属性 setter 中执行此操作,要么在分配 Items 后触发它。例如。

this.Items = this.ItemsList;
RaisePropertyChanged("Items"); //or however you've implemented INPC