C# 目标仅更新一次

C# 目标仅更新一次,c#,winforms,data-binding,C#,Winforms,Data Binding,我的主窗体有选项卡(一个选项卡控件),我的目标控件(一个文本框)在第三个选项卡中。在第一个选项卡上,我有几个输入数据的文本框控件。我的代码解析输入的数据并确定最大值,该值存储在绑定到我的目标文本框的属性中 textBox_Offset_ODR_MaxDepth.DataBindings .Add("Text", kernel.Targets, Targets.MaxDepthName); 当我运行程序时,我在第一个选项卡上添加数据,查看第三

我的主窗体有选项卡(一个选项卡控件),我的目标控件(一个文本框)在第三个选项卡中。在第一个选项卡上,我有几个输入数据的文本框控件。我的代码解析输入的数据并确定最大值,该值存储在绑定到我的目标文本框的属性中

textBox_Offset_ODR_MaxDepth.DataBindings
                           .Add("Text", kernel.Targets, Targets.MaxDepthName);
当我运行程序时,我在第一个选项卡上添加数据,查看第三个选项卡,然后查看文本框是否已正确更新。它正确地显示了最大值。然后我回到我的第一个选项卡,更改数据,然后再次查看我的第三个选项卡。该值尚未更新

我可以从其他在计算中使用source属性的控件中看到source属性确实已更新,但该更新尚未推送到目标文本框

如何使文本框在源属性更改时始终更新

我会给出我的解决办法,希望我能帮助其他人,但如果有人能发现我的问题并告诉我我做错了什么,那就更好了。我已经搜索了几个小时。

我添加了一个“刷新”按钮,并给出了以下代码:

private void button_Offset_ODR_Refresh_Click(object sender, EventArgs e)
{
    textBox_Offset_ODR_MaxDepth.DataBindings[0].ControlUpdateMode = ControlUpdateMode.Never;
    textBox_Offset_ODR_MaxDepth.DataBindings[0].ControlUpdateMode = ControlUpdateMode.OnPropertyChanged;
}
在某个时候,我(出于某种奇怪的原因)注释掉了我对INotifyPropertyChanged接口的声明

class Targets// : INotifyPropertyChanged
我的类实现了接口,但是顶部的声明被注释掉了。由于某些原因,这只允许目标控件更新一次。当我删除评论时

class Targets : INotifyPropertyChanged
它运行良好,并适当地更新了目标控件。

我认为您的意思是说“OnPropertyChanged”,这是“INotifyPropertyChanged”接口的一种方法。我确实实现了这个方法,我想这就是它第一次被更新,然后用我创建的按钮再次更新的原因。然而,在回复你的评论时,我发现了我真正的问题。我会给你一个新的答案。是的,你看起来真是个“先开枪,后提问”的家伙。