将DataGrid绑定到两个DataTable

时间:2015-09-17 12:58:12

标签: c# wpf datagrid datatable dataview

我有两个DataGrid具有完全相同的结构,架构和约束,但行数不同。

我需要的是将这些表显示为DataTable,连接,即首先是DataTable的行,然后是第二行的行。

我不想加入,合并或创建新DataGrid对象的任何操作,因为我需要在DataGrid上显示对这两个原件的更改(以及在另一个方向:如果用户修改了DataTable中的内容,我希望更新两个原件DataView

所以我想我需要的是一种&#34;代理&#34;,就像两个DataTable上的{{1}}一样,但我不知道这是否可能。< / p>

1 个答案:

答案 0 :(得分:0)

  

proxy&#34;,就像两个DataTable上的DataView一样,

我建议创建一个矢量类实体,它具有要显示的列的所有属性。但是这个类实体将保留对原始数据的引用。将两个DataTables提取到这个新对象的一个​​列表中并绑定到该列表。

要处理更改,请让类遵守INotifyPropertyChange并创建数据管理器,这将订阅每个实例的属性更改。当经理检测到更改时,它会将更改推回到原始DataTable的行。

public class DataVector : INotifyPropertyChange
{
    public DataTable OriginationDataTable { get; set; }
    public int OrininationRow { get; set; }

    // Mirror the properties
    public string Name { get {} { _Name = value; NotifyChange("Name"); }


    // CTORs which help create this object
    public DataVector(DataTable dt, int originatingRow) { ... } 

   ....
}