【问题标题】:wpf binding in c# to a filtered listc#中的wpf绑定到过滤列表
【发布时间】:2009-10-28 22:28:23
【问题描述】:
我最近开始使用 c# 和 wpf 进行开发。在我们的应用程序中,我们有一个要绑定到列表的 DataGrid 对象。但是,我们不希望列表中的所有条目都被绑定,只需要那些满足特定条件的条目。我们不能绑定到单独的列表(即绑定到应用过滤器创建的列表)的原因是我们想要 2 路绑定,这样当用户向表中添加一行时,它将被添加到总表。
问题1:是否可以绑定到“过滤”列表
问题2:如果不是,获得此功能的最佳方法是什么?即仅显示某些值,但将所有新条目添加到整个列表中
提前致谢
山姆
【问题讨论】:
标签:
c#
wpf
data-binding
datagrid
【解决方案1】:
您可以使用 CollectionView 类来实现您想要的。以下是如何使用 DataTable 作为源创建一个。
DataView myView = new DataView(MyDataTable);
ICollectionView cv = CollectionViewSource.GetDefaultView(myView);
您还可以将 ObservableCollection 用于自定义类的集合。创建集合视图后,您可以设置过滤器以及排序和分组。在 UI 中,您绑定到 CollectionView,一切顺利。因此,对于相同数据的多个视图,只需创建不同的 CollectionView 实例并绑定到这些实例。当您更新 UI 上的值时,您商店中的商品将“自动”更新
this site 包含一个相当不错但简单的示例