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

时间:2014-05-27 23:48:26

标签: wpf gridview mvvm collectionviewsource

要点: 在我窗口的ViewModel中,我有一个CollectionViewSource位于ObservableCollection个数据条目之上。在我的界面上,我在GridView内有一个ListView,该CollectionViewSource.View绑定了GridView。我有按钮(带有绑定命令),用户可以通过多种方式单击以过滤CollectionViewSource.View。这运作良好。但我还想实现一个按钮/命令,它将向用户显示现在过滤的MoveCurrentToPosition()中的一个随机条目。

我现在花了三个多小时(没有意识到已经过了这么多时间),试图寻找答案。在我发现CollectionViewSource.View属性的int count = EntriesCVS.View.Cast<Entry>().Count(); EntriesCVS.View.MoveCurrentToPosition(random.Next(0, count)); Entry randomEntry = EntriesCVS.View.CurrentItem as Entry; 方法后,我觉得我已经接近了,但它仍然不太正确。

以下是我的相关代码:

{{1}}

请注意,我完全添加了第三行,以便我可以通过调试器验证是否正确地抓取了一个随机条目(并且它是)。但是我的问题是GridView并不只显示一个条目。它显示了整个过滤结果集合,而不仅仅是其中的一个随机选择。

我仍然认为自己处于WPF的初级中级水平,并且最重要的是,我最近学习如何将我所知道的内容融入MVVM。

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

0 个答案:

没有答案