0

我正在创建一个 Windows Phone 应用程序,并希望使用 Pivots 将不同的视图显示到相同的数据中。

为此,我创建了属性:

IEnumerable<Item> Items { get; set; };
IEnumerable<Item> ItemView1 { get { return Items.where(value => value.Property) }};        
IEnumerable<Item> ItemView2 { get { return Items.where(value => value.Property) }};

然后我在我看来绑定到他们:

<phone:PivotItem>
    <phone:LongListSelector ItemsSource="{Binding ItemView1}">
</phone:PivotItem>

<phone:PivotItem>
    <phone:LongListSelector ItemsSource="{Binding ItemView2}">
</phone:PivotItem>

在向Items属性添加项目后,我调用:

NotifyPropertyChanged("ItemView1");
NotifyPropertyChanged("ItemView2");

但是,当我运行应用程序时,我的视图不会使用新结果更新,但如果我创建新列表,它就会起作用。不能像这样直接绑定到结果吗?如果没有,是否有任何建议的方式我应该做这样的事情,希望不必一直构建多个列表?

4

1 回答 1

-1

你提出了错误的事件。

简单的内容绑定控件,如文本块等,自动装配到 INotifyPropertyChanged,如果上下文对象实现该接口,但基于集合的控件(我认为也是基于选择器的)查找 INotifyCollectionChanged。

于 2013-03-29T03:20:49.293 回答