【问题标题】:Binding a NumericUpDown control to an object that implements INotifyPropertyChanged将 NumericUpDown 控件绑定到实现 INotifyPropertyChanged 的​​对象
【发布时间】:2011-12-18 19:35:33
【问题描述】:

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

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

【问题讨论】:

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


    【解决方案1】:

    我在使用 WriteValue 函数时遇到过类似的问题

    numericUpDown.DataBindings["Value"].WriteValue();
    

    这在控件失去焦点之前没有写入值时有效。

    【讨论】:

    • 感谢您的反馈!据我所知,这一定只是控件的标准行为,尽管我不确定我是否理解它为什么以这种方式实现。
    【解决方案2】:

    numericUpDown.DataBindings["Value"].ControlUpdateMode = ControlUpdateMode.OnPropertyChanged;

    【讨论】:

      猜你喜欢
      • 2013-07-31
      • 1970-01-01
      • 1970-01-01
      • 2013-04-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-09
      • 2019-01-17
      相关资源
      最近更新 更多