【发布时间】:2010-07-27 17:01:48
【问题描述】:
我有一个简单的应用程序,它使用 BindingList 人员来存储有关员工的信息(Windows 窗体)。 Person 具有多个属性,例如 Name、DateOfBirth 等,并实现了 INotifyPropertyChanged。
BindingList,people,被绑定到一个绑定源。 DataGridView 控件绑定到此源,并且按预期在 DataGridView 上更新属性更改。例如,当我更改一个人的年龄时,DataGridView 会立即更新。
当我使用相同的绑定源其他控件时会出现我的问题。我将文本框的文本属性绑定到 Person.Name,使用与 DataGridView 相同的绑定源。对 DataGridView 上的 Person.Name 属性的更改会更新,但不会对文本框进行更改。
如何在属性更改时更新文本框,例如 DataGridView?
克里斯
【问题讨论】:
-
您与 TextBox 的绑定是否包含 DataSourceUpdateMode.OnPropertyChanged 参数?
-
@TreDub:回答这个问题,这很可能。对。
-
是的,它设置为 DataSourceUpdateMode.OnPropertyChanged。但它不会更新值。我还需要启用什么才能让 OnPropertyChanged 工作吗?
-
好的,我发现当属性从 GUI 线程以外的线程更改时,文本框不会更新(尽管 DataGridView 会),这是预期的行为吗?
标签: c# data-binding binding inotifypropertychanged