【问题标题】:Better Practice: CheckBox DataBindings vs CheckedChanged event更好的实践:CheckBox DataBindings 与 CheckedChanged 事件
【发布时间】:2010-12-19 16:43:06
【问题描述】:

我有一个CheckBox那个,当检查/未选中时会切换一些其他控件的Enabled属性。我的代码确实是这样的:

checkBox.CheckedChanged += new EventHandler((o, e) => 
{
    control1.Enabled = checkBox.Checked;
    control2.Enabled = checkBox.Checked;
});

但今天我开始玩 DataBindings 并发现我可以这样做:

control1.DataBindings.Add("Enabled", checkBox, "Checked");
control2.DataBindings.Add("Enabled", checkBox, "Checked");

它们的行为似乎相同,但我怀疑其中一个比另一个更受欢迎。或者,也许有人有一些意外的行为,可能会在以后绊倒我。

一种方法比另一种更好吗?

【问题讨论】:

    标签: c# .net winforms data-binding


    【解决方案1】:

    您应该注意到还有另一个区别:
    使用数据绑定(方法二),如果对象实现了INotifyPropertyChanged,并且如果object.Enabled在UI层之外发生了改变,checkbox.checked状态会自动改变。

    【讨论】:

      【解决方案2】:

      第一个是在编译时检查的,所以我会选择那个。我假设如果第二个示例中的“启用”属性无效,您将收到运行时错误。

      【讨论】:

      • 另外,您将无法自动“重构”第二个。
      猜你喜欢
      • 1970-01-01
      • 2021-04-21
      • 1970-01-01
      • 2011-02-16
      • 1970-01-01
      • 2016-08-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多