可以将XAML ItemSource绑定到由Where查询生成的IEnumerable
本文关键字:查询 Where IEnumerable XAML ItemSource 绑定 | 更新日期: 2023-09-27 18:06:20
我正在创建一个Windows Phone应用程序,并希望使用透视来显示相同数据的不同视图。
为了做到这一点,我创建了属性: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");
然而,当我运行应用程序,我的视图没有得到更新的新结果,但它工作,如果我创建新的列表。难道不可能像这样直接绑定到结果吗?如果没有,有没有什么建议的方法,我应该做这样的事情,希望没有建立多个列表所有的时间?
您引发了错误的事件。
简单的内容绑定控件,如文本块等,如果上下文对象实现了该接口,则自动连接到INotifyPropertyChanged,但基于集合的控件(我认为基于选择器)查找INotifyCollectionChanged