【问题标题】:Update databindings when a TextBox changes rather than loses focus当文本框更改而不是失去焦点时更新数据绑定
【发布时间】:2009-05-30 07:03:12
【问题描述】:

我正在学习为紧凑型框架进行开发,但遇到了一个困扰我的问题。

我已经将几个文本框绑定到一些属性(一个人类的名字和姓氏),并且有一个菜单项,它只显示全名的显示消息,它工作得很好,除了属性只更新一次文本框失去焦点。这意味着如果我更改名字并按显示名称菜单项,我会得到名字的旧值。

有没有一种方法可以强制更新数据绑定,或者让它每次在其中一个文本框中更改字符时更新相应的属性?

【问题讨论】:

    标签: winforms data-binding compact-framework


    【解决方案1】:

    如果您这样做,您可能会将不良数据放入您的数据对象中,但这里是如何做到这一点的:

    在您的 MyTextBox.DataBinding.Add() 方法中,使用 this overload 和 OnPropertyChanged 作为 DataSourceUpdateMode 参数,而不是默认的 OnValidate

    我再说一遍,这是听起来很容易的事情之一,但从长远来看可能会导致问题,因为您“绑定”到从未经过验证的数据。

    【讨论】:

    • 这确实有效(谢谢),我只想确保文本框与我的对象同步的情况如何。我能想到的唯一方法是将焦点从文本框移开(也许又移回来),我猜有一种更清洁的方法。
    【解决方案2】:

    只需在按钮上的代码中调用表单的 ValidateChildren() 进行保存

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-04
      • 1970-01-01
      相关资源
      最近更新 更多