将NumericUpDown控件绑定到实现INotifyPropertyChanged的对象

时间:2011-10-31 14:51:56

标签: winforms data-binding inotifypropertychanged numericupdown lost-focus

我有一个NumericUpDown控件绑定到实现INotifyPropertyChanged的业务对象的int属性。 NumericUpDown控件的数据源更新模式设置为OnPropertyChanged,控件的ReadOnly属性设置为false。这有效,但有一个例外:如果我在NumericUpDown控件的文本框部分输入一个值,控件绑定的属性值在控件失去焦点之前不会更新。

我有一个ToolStrip,表格上有几个按钮。单击这些按钮不会导致NumericUpDown控件失去焦点,因此在通过其中一个按钮单击对我的业务对象执行任何操作之前,我调用toolStrip.Focus()以确保NumericUpDown的文本框部分中的值控件已被推回到业务对象。这似乎对我有用,但我想知道这是否是这个场景中NumericUpDown控件的预期行为,如果是这样,其他人如何解决这种情况?感谢您的反馈!

2 个答案:

答案 0 :(得分:4)

我在使用WriteValue函数

时遇到了类似的问题
numericUpDown.DataBindings["Value"].WriteValue();

在控制失去焦点之前没有写入值时,这是有效的。

答案 1 :(得分:2)

numericUpDown.DataBindings [“Value”]。ControlUpdateMode = ControlUpdateMode.OnPropertyChanged;