【发布时间】:2011-01-31 15:34:29
【问题描述】:
我的 WPF4 DataGrid 绑定到一个不可排序的集合 - ObjectResult(of t) 。我不知道如何改用 ListCollectionView 之类的可排序集合。
详细信息:当应用程序加载时,用户启动搜索以填充 DataGrid 和其他可编辑控件。为了执行搜索,我正在构建一个基于用户过滤器选择的 ObjectQuery(of t)。 ObjectQuery 的 Execute 方法返回我设置为 CollectionViewSource.Source 的 ObjectResult。在 XAML 中,DataGrid 绑定到 CollectionViewSource,它是我创建的屏幕的 DataContext。
System.Data.Objects.ObjectQuery<LabSample> labSamplesQuery = this.GetLabSamplesFiltered_Query(_labEntitiesContext, sampleID_LIKE, xxx_LIKE, yyy_LIKE);
System.Data.Objects.ObjectResult<LabSample> labSamples = labSamplesQuery.Execute(System.Data.Objects.MergeOption.AppendOnly);
_labSamplesCollectionViewSource.Source = labSamples;
因为 DataGrid 绑定到 ObjectResult(of t),所以它不可排序。 在将我的查询结果 (labSamples) 分配为我的数据源 (CollectionViewSource.Source) 之前,如何将其放入可排序和可更新的集合中?
【问题讨论】:
-
您需要收藏可更新吗?
-
是的。这似乎是一个基本要求——用户搜索数据,我将结果转储到网格中,以便用户可以编辑记录。哪里有网页或视频来学习如何做到这一点?我将 Aaron 的回答标记为接受的有点太早了。他的回答给了我一个以 ICollectionView 作为 DataGrid.ItemsSource 的可排序网格,但我的其他控件不再绑定。我希望我的表单的 DataContext 与我用于 DataGrid 的 ItemSource 的任何内容相匹配。
标签: wpf entity-framework-4 binding wpfdatagrid