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