【问题标题】:Multiple DataGrids on one DataTable一个 DataTable 上的多个 DataGrids
【发布时间】:2012-10-10 09:26:42
【问题描述】:

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

【问题讨论】:

    标签: datagrid datatable wpfdatagrid collectionviewsource


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-27
      • 2015-12-08
      • 2013-12-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多