以下代码按照您的期望工作 - 当用户在下拉菜单中选择新项时,模型上的MyProperty
将被更新。
comboBox1.DataBindings.Add("SelectedValue", myModel, "MyProperty", true,
DataSourceUpdateMode.OnPropertyChanged);
然而,下面的代码不起作用方式相同,只有当输入焦点移动到表单上的另一个控件时才会触发模型更新:
comboBox1.DataBindings.Add("SelectedItem", myModel, "MyProperty", true,
DataSourceUpdateMode.OnPropertyChanged);
有人知道为什么吗?我甚至不知道从哪里开始调查原因。提供指向正确方向的指针或直接解释都将同样地受到赞赏。
另外:对于我的需求,我最终绑定了SelectedItem
和SelectedValue
两个属性。这样我就可以通过SelectedValue
绑定来获得基于UI更改的即时模型更新,并通过SelectedItem
绑定进行基于编程模型更改的UI更新。