代码之家  ›  专栏  ›  技术社区  ›  Simon D

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

  •  2
  • Simon D  · 技术社区  · 15 年前

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

    但是,同步文本框和数据网格中的值之间的更改的最佳方法是什么。如果我改变了一张唱片,那么它不会改变另一张唱片,除非我转到另一张唱片再回来。

    我可以通过将datagrid.Refresh()添加到textbox Validated事件中来实现这一点,并且可能会向datagrid上的CellValidated事件中添加一些内容,但是看起来我可能用了错误的方法。

    编辑:

    根据下面的答案,我的问题应该是: 是否有方法将绑定到的数据表中的更改通知绑定控件,或者代码必须使用BindingList或手动执行。

    1 回复  |  直到 15 年前
        1
  •  2
  •   flipdoubt    15 年前

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