以下代码按预期工作 - MyProperty当用户在下拉列表中选择新项目时,模型会更新.
comboBox1.DataBindings.Add("SelectedValue", myModel, "MyProperty", true,
DataSourceUpdateMode.OnPropertyChanged);
Run Code Online (Sandbox Code Playgroud)
但是,以下方法的工作方式不同,并且在输入焦点移动到窗体上的另一个控件之前不会触发模型更新:
comboBox1.DataBindings.Add("SelectedItem", myModel, "MyProperty", true,
DataSourceUpdateMode.OnPropertyChanged);
Run Code Online (Sandbox Code Playgroud)
有人知道为什么吗?我甚至不知道从哪里开始调查原因.指向正确方向开始调查或直接解释的指针同样值得赞赏.
除了:对于我而言,我最终结合两者SelectedItem和SelectedValue.这样我就可以根据UI更改(通过SelectedValue绑定)获得即时模型更新,并根据程序模型更改(通过SelectedItem绑定)进行UI更新.