Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 是否可以将XAML ItemSource绑定到Where查询生成的IEnumerable?_C#_Linq_Xaml_Windows Phone - Fatal编程技术网

C# 是否可以将XAML ItemSource绑定到Where查询生成的IEnumerable?

C# 是否可以将XAML ItemSource绑定到Where查询生成的IEnumerable?,c#,linq,xaml,windows-phone,C#,Linq,Xaml,Windows Phone,我正在创建一个Windows Phone应用程序,希望使用数据透视来显示相同数据的不同视图 为此,我创建了属性: IEnumerable<Item> Items { get; set; }; IEnumerable<Item> ItemView1 { get { return Items.where(value => value.Property) }}; IEnumerable<Item> ItemView2 { get { retur

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

您提出了错误的事件


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

您不能将其更改为
Items.Where(x=>x.Property).ToList()
在您启动NotifyPropertyChanged后,它应该可以正常工作。您是否尝试过“{Binding Path=ItemView1}”?我不知道为什么这个答案有-1声誉,但@JerKimball是正确的ItemsSource依赖项属性订阅“INotifyCollectionChanged”事件。因此,您必须使用“ObservableCollection”或创建自己的实现“INotifyCollectionChanged”接口的集合实现。有关更多详细信息,您可以查看:“为了让列表框拾取更改,您必须重新创建员工列表,并将其重新附加到列表框的ItemsSource属性。”
<phone:PivotItem>
    <phone:LongListSelector ItemsSource="{Binding ItemView1}">
</phone:PivotItem>

<phone:PivotItem>
    <phone:LongListSelector ItemsSource="{Binding ItemView2}">
</phone:PivotItem>
NotifyPropertyChanged("ItemView1");
NotifyPropertyChanged("ItemView2");