1

我有两个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应该有自己的数据视图,所以我在这里遗漏了什么吗?

4

1 回答 1

0

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

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

这将允许您拥有单独的视图。

于 2013-07-12T17:42:51.230 回答