这里不涉及数据库,我在代码中创建自己的数据表,并将其绑定(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/