将数据网格绑定到两个数据表

本文关键字:两个 数据表 数据 数据网 网格 绑定 | 更新日期: 2023-09-27 18:13:13

我有两个结构、模式和约束完全相同的DataTable,但行不同。

我需要的是将这些表显示为一个DataGrid,串联起来,即首先是第一个DataTable的行,然后是第二个的行。

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

所以我想我需要的是一种"代理",就像两个DataTable上的DataView,但我不知道这是否可能。

将数据网格绑定到两个数据表

代理",就像两个数据表上的数据视图,

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

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

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) { ... } 
   ....
}