将数据网格绑定到两个数据表
本文关键字:两个 数据表 数据 数据网 网格 绑定 | 更新日期: 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) { ... }
....
}