2012-10-10 39 views
1

我有兩個CollectionViewSource綁定到同一個數據表Client。每個CollectionViewSource有獨立DataGrid綁定到它:一個DataTable上的多個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

我不知道你是否仍在尋找解決方案,但我有同樣的問題。它通過創建一個新的CollectionViewSource來解決。本質上是這樣的:

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

這將允許你有個人意見。