Wpf 如何更新CollectionViewSource.View以仅反映一项?

Wpf 如何更新CollectionViewSource.View以仅反映一项?,wpf,gridview,mvvm,collectionviewsource,Wpf,Gridview,Mvvm,Collectionviewsource,总结: 在我窗口的ViewModel中,我有一个CollectionViewSource位于数据项的ObservableCollection之上。在我的UI上,ListView中有一个GridView,它绑定到所说的CollectionViewSource.View。我有一些按钮(带有绑定命令),用户可以单击这些按钮以多种方式过滤GridView。这是运作良好。但是我还想实现一个按钮/命令,它将只向用户显示现在过滤的CollectionViewSource.View中的一个随机条目 我现在已经花

总结: 在我窗口的ViewModel中,我有一个
CollectionViewSource
位于数据项的
ObservableCollection
之上。在我的UI上,
ListView
中有一个
GridView
,它绑定到所说的
CollectionViewSource.View
。我有一些按钮(带有绑定命令),用户可以单击这些按钮以多种方式过滤
GridView
。这是运作良好。但是我还想实现一个按钮/命令,它将只向用户显示现在过滤的
CollectionViewSource.View
中的一个随机条目

我现在已经花了三个多小时(没有意识到已经过去了这么多时间),试图寻找这个问题的答案。在发现了
CollectionViewSource.View
属性的
MoveCurrentToPosition()
方法之后,我感觉自己离此越来越近了,但它仍然不太正确

以下是我的相关代码:

int count = EntriesCVS.View.Cast<Entry>().Count();
EntriesCVS.View.MoveCurrentToPosition(random.Next(0, count));
Entry randomEntry = EntriesCVS.View.CurrentItem as Entry;
int count=entriesvs.View.Cast().count();
entriesvs.View.MoveCurrentToPosition(random.Next(0,count));
Entry randomEntry=Entriesvs.View.CurrentItem作为条目;
请注意,我添加了第三行纯粹是为了使用调试器验证是否正确抓取了随机条目(确实如此)。但我的问题是GridView并不是只显示一个条目。它显示过滤结果的整个集合,而不仅仅是其中的一个随机选择

我仍然认为自己在WPF的初级中级阶段,最后,我最近在学习如何把我所知道的知识转化成MVVM。


如何告诉CVS仅显示其当前项?

是否尝试将CVS的filter属性设置为除randomEntry之外的所有项都返回false?现在,所需的行为是显示已过滤集合中的一个项。您是否建议筛选筛选的结果?(哟,老兄)值得一试。今天早上我会对它进行修补,看看我是否能弄明白,但与此同时,我想知道,由于我还是新手,是否有一些简单的东西我遗漏了(比如,“你在那里设置了foo,但忘了更新那里的酒吧。”)。不管怎样,我都非常感激。我会看看我是否能让过滤器工作。是的,一个过滤器链会在它设置好并工作后完成你想要的工作。