首页 > 解决方案 > 带有可更新数据源的 C# DataGridView

问题描述

我有一个 DataGridView 和多个包含数据的对象,每次在选择其中一个对象之间切换时,我想填充 DataGridView。我还想在每次编辑 DataGridView 时更新这些对象中的数据。

DataGridView 已经有预定义的列,其中一些是 ComboBox 列。

说我有

public class OB()
{
    public DataTable data { get; private set; } = new DataTable();
}

obj1 = new OB();
obj2 = new OB();
.
.
.
public void some_selection_event(object s, EventArgs e)
{
    dataGridView1.DataSource = ((OB)s).data;
}

如果我编辑dataGridView1while obj1.datais bound to its ,然后在再次绑定回DataSource它之前将其他东西绑定到它,表明它只记得我在编辑它时它所拥有的行数bound to its ,并且单元格中的数据是丢失,每个单元格都是空的。obj1.datadataGridView1obj1.dataDataSource

有没有一种方法可以轻松地将 DataSource 映射到 DataGridView 然后自动更新,或者我在这里遗漏了什么?

标签: c#datagridview

解决方案


如果您已Columns在 中预定义,请DataGridView使用DataGridView.DataPropertyName以确保DataSourceDataGridView都在处理相同的数据。


推荐阅读