使用CollectionViewSource

时间:2017-03-14 02:01:44

标签: c# wpf mvvm wpfdatagrid collectionviewsource

我无法弄清楚如何在XAML中进行CollectionViewSource过滤,所以我在代码中创建了我的CollectionViewSource并通过MVVM将View作为属性传递...我不确定这是否是其中的一部分问题,但这是我的问题:

在WPF DataGrid中,我想按日期排序文档列表,然后按名称排序。我尝试添加多个SortDesccriptions,但这似乎不起作用。我尝试添加分组...而且我不确定SortDescriptions如何与LiveSortingProperties交互,以及Live为什么不允许排序方向。我尝试过不同配置的多次迭代。这就是我现在所拥有的:

_docsCVS = new CollectionViewSource();

_docsCVS.GroupDescriptions.Add(new PropertyGroupDescription("DocDate"));
_docsCVS.LiveGroupingProperties.Add("DocDate");
_docsCVS.IsLiveGroupingRequested = true;

_docsCVS.SortDescriptions.Add(new SortDescription() { PropertyName = "DocDate", Direction = ListSortDirection.Descending });
_docsCVS.SortDescriptions.Add(new SortDescription() { PropertyName = "DocName", Direction = ListSortDirection.Ascending });
_docsCVS.LiveSortingProperties.Add("DocDate");
_docsCVS.LiveSortingProperties.Add("DocName");
_docsCVS.IsLiveSortingRequested = true;

_docsCVS.LiveFilteringProperties.Add("SourceId");
_docsCVS.IsLiveFilteringRequested = true;
_docsCVS.Filter += _docs_CVSFilter;

_docsCVS.Source = Docs;

过滤按预期工作。但我无法弄清楚如何让文档首先按日期(降序)排序(或分组),然后按名称(升序)排序。然后,如果添加或删除文档,则保持正确的排序/分组。

我做错了什么?

感谢。

Ĵ

0 个答案:

没有答案