【发布时间】:2017-05-15 12:32:22
【问题描述】:
我有一个 WPF Datagrid,它的项目源是一个列表。 代码如下:
ReleaseDataGridView.ItemsSource = DisplayReleaseList;
其中 DisplayReleaseList 定义为:
List<ReleaseDataItem> DisplayReleaseList = new List<ReleaseDataItem>();
ReleaseDataItem 是一个具有少量字段及其相应属性的类。 我向 DisplayReleaseList 添加了一些 ReleaseDataItem 对象,然后将其设置为 ReleaseDataGridView 的 ItemsSource
我想在 ReleaseDataItem 类中有一个字段/属性来决定是否在网格中显示这一行。
例如: 如果有两个字段,在 ReleaseDataItem 类中说 bool visible 和 string name,我将代码编写为:
ReleaseDataItem obj1 = new ReleaseDataItem(false,"abc"); //passed to constructor
ReleaseDataItem obj2 = new ReleaseDataItem(true,"xyz");
DisplayReleaseList.Add(obj1);
DisplayReleaseList.Add(obj2);
ReleaseDataGridView.ItemsSource = DisplayReleaseList;
那么网格将只有对应于 obj2(第二个对象)的行。 我怎样才能做到这一点?
【问题讨论】:
-
使用带有过滤器的 CollectionViewSource。见这里:msdn.microsoft.com/en-us/library/ff407126(v=vs.110).aspx
-
您也可以改用 CollectionViewSource 的实时过滤/实时整形功能(自 WPF4.5 起可用)。更多信息在这里:jonathanantoine.com/2011/10/05/…