c# - 在 C# (winforms) 中如何同步文本框和 datagridview,以便一个中的更改显示在另一个中

标签 c# data-binding datagridview textbox

这里不涉及数据库,我在代码中创建自己的数据表,并将其绑定(bind)到文本框和数据 GridView 。

当我更改网格中的当前记录时,文本框会更新为当前值。

但是同步文本框和数据网格中的值之间的变化的最佳方式是什么。如果我更改一个,那么它不会更改另一个,除非我转到另一条记录并返回。

我可以通过向文本框验证事件添加一个 datagrid.Refresh() 来做到这一点,并且可能向数据网格上的 CellValidated 事件添加一些东西,但似乎我可能会以错误的方式解决这个问题。

编辑:

根据下面的回答,我的问题应该是:有没有办法通知绑定(bind)控件它们绑定(bind)到的 DataTable 中的更改,或者代码必须使用 BindingList 还是手动执行。

最佳答案

我建议你使用 BindingList<T>而不是 DataTable , 其中T是代表网格中显示的每条记录的“业务对象”。那么你的业务对象应该实现 INotifyPropertyChanged 和火NotifyPropertyChanged每当文本框中的值更改时,通过将所需的属性绑定(bind)到 TextBox.Text或每当 TextBox.TextChanged 时更新所选业务对象的适当属性火灾。

关于c# - 在 C# (winforms) 中如何同步文本框和 datagridview,以便一个中的更改显示在另一个中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1070255/

相关文章:

vb.net - 从 DatagridView 创建 Tiff 位图文件

c# - AutoMapper map Int

c# - F# 中的记录实例在 C# 中为空

javascript - Ajax success() 可以处理两种类型的返回吗?

json - Knockout.js 将 JSON 数组中的每个对象数据绑定(bind)到 <td>

c# - 如何通过其子元素提取 DataTemplate 的绑定(bind)?

c# - 禁用某些单元格的工具提示

c# - Unity5-GUI-HP-Bar 问题

c# - 如何绑定(bind)到 View 中但不在 View 模型中的属性?

DataGridView DefaultCellStyle 的 C++/CLI 填充