一个DataTable上的多个DataGrid

时间:2012-10-10 09:26:43

标签: datagrid datatable wpfdatagrid collectionviewsource

我有两个CollectionViewSource绑定到同一个数据表Client。每个CollectionViewSource都有一个单独的DataGrid绑定到它:

(dg1: DataGrid) ----> (cvs1: CollectionViewSource) ----
                                                      |
                                                      v
                                                (Clients: DataTable)
                                                      ^
                                                      |
(dg2: DataGrid) ----> (cvs2: CollectionViewSource) ----

或者在XAML中:

<CollectionViewSource x:Key="cvs1" Source="{Binding Client, Source={StaticResource MainDataSet}}"/>
<CollectionViewSource x:Key="cvs2" Source="{Binding Client, Source={StaticResource MainDataSet}}"/>
...
...
<DataGrid ItemsSource="{Binding Source={StaticResource cvs1}}" ...>
    ....
</DataGrid>
<DataGrid ItemsSource="{Binding Source={StaticResource cvs2}}" ...>
    ....
</DataGrid>

然而,当应用程序运行并且我单击第一个DataGrid以按某些列排序时,第二个DataGrid会立即与第一个一起排序。这不是我想要的。

据我所知,每个CollectionViewSource应该有自己的数据视图,所以我在这里遗漏了什么吗?

1 个答案:

答案 0 :(得分:0)

我不知道您是否仍在寻找解决方案,但我遇到了同样的问题。它是通过创建一个新的CollectionViewSource来解决的。实质上就是这样:

ICollectionView cvs1 = new CollectionViewSource {Source = dataSource} .View; ICollectionView cvs2 = new CollectionViewSource {Source = dataSource} .View;

这将允许您拥有个人观点。