C# 更新控件的事件-如何正确操作?

C# 更新控件的事件-如何正确操作?,c#,C#,我有2个表示二进制数的文本框。 我有控件(复选框和组合框),它们控制每个文本框中的某些位。 当前,当我更改控件中的值时,它会更改文本框中的相关位 我想在文本框中键入一个二进制数。 我希望其他控件(复选框、组合框、其他文本框)将根据文本框的新值进行更新 我知道可以为每个控件创建一个方法,该方法将获得相关位,并由事件触发,但由于在我的实际项目中,我有25个文本框和许多复选框,因此很难实现。 我怎样才能把它做好 我不知道您是否在为您的模型使用数据库,如果是这样,您可以创建datatable,并通过使用

我有2个表示二进制数的文本框。 我有控件(复选框和组合框),它们控制每个文本框中的某些位。 当前,当我更改控件中的值时,它会更改文本框中的相关位

我想在文本框中键入一个二进制数。
我希望其他控件(复选框、组合框、其他文本框)将根据文本框的新值进行更新

我知道可以为每个控件创建一个方法,该方法将获得相关位,并由事件触发,但由于在我的实际项目中,我有25个文本框和许多复选框,因此很难实现。
我怎样才能把它做好


我不知道您是否在为您的模型使用数据库,如果是这样,您可以创建datatable,并通过使用
Text
属性上的
DataBindings
将所有文本框绑定到datatable中的数据(在文本框属性中可用)

若并没有数据库模型,可以将所有文本框绑定到某个自定义模型类(通过添加对象源)。您的类应该实现
INotifyPropertyChanged
,如下所述:


我不确定更新何时在GUI上发生,我的意思是,这是否会在键入或将当前控件更改为其他控件时更新GUI…

实现这一点的好方法是使用WinForm绑定到的模型(ViewModel)。这意味着您有一个对象,该对象将具有与您的文本字段对应的属性。每个文本字段都应该绑定到相应的模型属性,从而通过PropertyChanged事件获得更改。更改属性值的逻辑应该在模型级别而不是UI上实现和封装。这种方法的许多好处之一是,您可以在不涉及UI的情况下对模型和逻辑进行单元测试

请确保查看以下线程,这将深入了解MVVM模式


它非常常用,是UI编程的最佳设计模式之一。但是,如果它与您的用例相匹配,则由您自己决定。

太累了,无法做出正确的回答,其他人应该承担责任:p。。。实现一个或两个事件方法,使用“sender”对象(您的方法将取决于此sender是TB还是CB或其他),这些事件将在CheckedChanged和TextChanged上显示,在那里您将说“将sender的值应用于具有相同类型的所有其他控件”。这是一般的想法,您必须提供额外的信息以获得更精确的答案。您是否使用MVVM方法?是WinForms还是WPF?这是一篇关于这种方法的SO文章,是否可以将MVVM应用于WinForms?是的,这是可能的。MVVM是一种可以应用于各种技术的设计模式。然而,我必须承认它是最适合WPF的。您可能会发现以下线程很有用,因为它解决了这个问题: