我有两个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
应该有自己的数据视图,所以我在这里遗漏了什么吗?
答案 0 :(得分:0)
我不知道您是否仍在寻找解决方案,但我遇到了同样的问题。它是通过创建一个新的CollectionViewSource来解决的。实质上就是这样:
ICollectionView cvs1 = new CollectionViewSource {Source = dataSource} .View; ICollectionView cvs2 = new CollectionViewSource {Source = dataSource} .View;
这将允许您拥有个人观点。