ObservableCollection和LongListSelector

时间:2014-11-17 08:57:55

标签: c# data-binding

我的应用程序包括在五页之间导航。每个页面都包含一个列表。所有列表使用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,但它什么都没改变。

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

1 个答案:

答案 0 :(得分:2)

当您更改PropertyChanged财产时,您尚未提出Items事件。添加支持字段并在属性设置器中执行,或者在分配Items后将其激活。例如

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