将 DataGrid 绑定到两个 DataTable

     2023-02-19     113

关键词:

【中文标题】将 DataGrid 绑定到两个 DataTable【英文标题】:Binding DataGrid to two DataTable 【发布时间】:2015-12-14 08:31:56 【问题描述】:

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

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

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

所以我想我需要的是一种“代理”,比如两个DataTable 上的DataView,但我不知道这是否可能。

【问题讨论】:

您仍然需要将它们连接成一个对象(另一个表、视图等),然后将其设置为DataGrid.ItemsSource。关系并不重要。 @Sinatr 但这样对两个原始 DataTable 的更改不会影响 DataGrid,反之亦然。 【参考方案1】:

proxy",就像两个DataTable上的一个DataView,

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

要处理更改,请让类遵守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)  ...  

   ....

【讨论】:

这可能有效,但如果列名仅在运行时已知,则不适合,除非您使用反射.. 对吗? @WoDoSc 当然必须知道列,但坦率地说,为什么不知道呢?谁在接收来自数据库调用的未知接口?恕我直言,这个场景是一次性的。 实际上在我的情况下,列的数量(和名称)会动态变化,具体取决于我试图处理的“问题实例”。例如,我表的每一列是一家公司,每一行是一个产品(反之亦然),一个单元格包含该产品在该公司的成本(这只是一个例子,我的情况略有不同,但我此处不能提及)。

如何将 DataTable 绑定到 Datagrid

】如何将DataTable绑定到Datagrid【英文标题】:HowtobindDataTabletoDatagrid【发布时间】:2014-01-1306:14:02【问题描述】:我在将DataTable绑定到DataGrid时遇到问题。我已经寻找解决方案,但无法摆脱错误。绑定在使用WindowsForms时工作正常,... 查看详情

通过 ActionScript 将数据绑定到 DataGrid

】通过ActionScript将数据绑定到DataGrid【英文标题】:BindingdatatoDataGridthroughActionScript【发布时间】:2011-03-0911:27:19【问题描述】:我正在尝试将从服务器传入的ArrayCollection结果绑定到我的DataGrid在AS中动态创建。结果数据未显示在... 查看详情

如何将 DataTable 绑定到 DataGrid

】如何将DataTable绑定到DataGrid【英文标题】:HowBindDataTabletoDataGrid【发布时间】:2011-10-1202:24:39【问题描述】:这是我的数据表。DataTable_simpleDataTable=newataTable();varperson=newDataColumn("Person")DataType=typeof(Person);_simpleDataTable.Columns.A 查看详情

如何将 DataGrid 中的文本框绑定到 Wpf 中的列表?

】如何将DataGrid中的文本框绑定到Wpf中的列表?【英文标题】:HowtoBindaTextBoxinDataGridtoaListinWpf?【发布时间】:2017-08-1802:26:08【问题描述】:我正在开发一个新的Wpf项目,并且正在努力将DataGrid中的文本框绑定到Wpf中的对象列表。... 查看详情

如何将Array数据绑定到DataGrid并实现数据更新?

】如何将Array数据绑定到DataGrid并实现数据更新?【英文标题】:HowtobindArraydatatoDataGridandrealizedataupdate?【发布时间】:2021-12-2308:44:48【问题描述】:我想将Array绑定到4列DataGrid并更新数据。这可能吗?如果不能实现,需要如何修... 查看详情

将按钮绑定到 DataGrid WPF 中的对象

】将按钮绑定到DataGridWPF中的对象【英文标题】:BindaButtontoanobjectinDataGridWPF【发布时间】:2015-03-2703:30:18【问题描述】:我正在构建一个WPF应用程序,其中包含将商品添加到购物车的操作。如下定义的DataGrid绑定到Products的集合... 查看详情

WPF MVVM 将 ComboBox 绑定到 Datagrid 选定项

】WPFMVVM将ComboBox绑定到Datagrid选定项【英文标题】:WPFMVVMBindingComboBoxtoDatagridSelectedItem【发布时间】:2013-01-0317:45:23【问题描述】:有没有人将ComboBox绑定到DataGrid的选定项的示例?我已经尝试了很多方法,但我似乎无法让它发挥... 查看详情

将 DataGrid 行中的 DoubleClick 命令绑定到 VM

】将DataGrid行中的DoubleClick命令绑定到VM【英文标题】:BindDoubleClickCommandfromDataGridRowtoVM【发布时间】:2013-06-2911:10:15【问题描述】:我有一个Datagrid,不喜欢我的解决方法,即在我的视图模型上为单击(又名选定)行触发双击命... 查看详情

如何使用 MVVM 将数据绑定到 DataGrid 中的 DataGridComboBoxColumn

】如何使用MVVM将数据绑定到DataGrid中的DataGridComboBoxColumn【英文标题】:HowtoBinddatatoDataGridComboBoxColumninDataGridusingMVVM【发布时间】:2011-04-0313:29:25【问题描述】:这快把我逼疯了。我有一个DataGrid,它有一个DataGridComboBoxColumn,我希... 查看详情

WPF:将 DataGrid 绑定到 List<String>

】WPF:将DataGrid绑定到List<String>【英文标题】:WPF:BindDataGridtoList<String>【发布时间】:2011-02-2119:24:39【问题描述】:有趣的是,有时简单的事情会在背后咬我。我可以使用这样的DataGridTextColumn将DataGrid很好地绑定到某个... 查看详情

如何将 DataGridTemplateColumn.Visibility 绑定到 DataGrid.ItemsSource 之外的属性?

】如何将DataGridTemplateColumn.Visibility绑定到DataGrid.ItemsSource之外的属性?【英文标题】:HowtobindDataGridTemplateColumn.VisibilitytoapropertyoutsideofDataGrid.ItemsSource?【发布时间】:2013-02-2423:16:30【问题描述】:我需要将DataGridTemplateColumn的Visib 查看详情

如何将 List<CustomObject> 绑定到 WPF DataGrid?

】如何将List<CustomObject>绑定到WPFDataGrid?【英文标题】:HowdoIbindaList<CustomObject>toaWPFDataGrid?【发布时间】:2011-06-2610:02:38【问题描述】:我是WPF新手,想做一些基本的数据绑定。我有一个CustomObject列表,想将它绑定到DataG... 查看详情

WPF 将列表绑定到 DataGrid 中的 ComboBoxColumn

】WPF将列表绑定到DataGrid中的ComboBoxColumn【英文标题】:WPFBindingalisttoaComboBoxColumnwithinaDataGrid【发布时间】:2021-03-1808:34:39【问题描述】:我遇到了WPF中数据网格中的组合框的问题。基本上我有一个“船员”类和“用户”类,在船... 查看详情

使用 TemplateColumns 将 WPF DataGrid 绑定到 DataTable

】使用TemplateColumns将WPFDataGrid绑定到DataTable【英文标题】:BindingWPFDataGridtoDataTableusingTemplateColumns【发布时间】:2011-02-1006:29:42【问题描述】:我已经尝试了所有方法,但一无所获,所以我希望有人能给我带来欢呼的时刻。我根本... 查看详情

如何将 WPF DataGrid 绑定到 ObservableCollection

】如何将WPFDataGrid绑定到ObservableCollection【英文标题】:HowtobindWPFDataGridtoObservableCollection【发布时间】:2014-08-2317:03:40【问题描述】:你能告诉我。我看过一些帖子,但没有找到直接的答案。到处都描述了复杂的问题,但我的问... 查看详情

将内部datagrid数据与外部datagrid wpf绑定

】将内部datagrid数据与外部datagridwpf绑定【英文标题】:Bindinginnerdatagriddatawithoutterdatagridwpf【发布时间】:2014-04-2305:56:12【问题描述】:我有一个源数据网格,它绑定了一个名为source的数据表和一个内部数据网格(可以通过单击ro... 查看详情

DataGrid 绑定命令到行选择

】DataGrid绑定命令到行选择【英文标题】:DataGridbindcommandtorowselect【发布时间】:2013-02-2523:01:06【问题描述】:当用户在DataGrid中选择一行时,我想执行一个命令。我看到可以将单元格内容包装在按钮中(尽管我不想要按钮样式... 查看详情

C#/WPF:将 Datagrid 中的 Combobox ItemSsource 绑定到 DataContext 之外的元素

】C#/WPF:将Datagrid中的ComboboxItemSsource绑定到DataContext之外的元素【英文标题】:C#/WPF:BindingComboboxItemSourceinDatagridtoelementoutsideoftheDataContext【发布时间】:2010-12-0214:21:24【问题描述】:我想做以下事情:publicList<Users>PreLoadedUserLi... 查看详情