我有一个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");
他们似乎行为相同,但我怀疑一个人比另一个人更受欢迎。或者也许有人会有一些意想不到的行为可能会让我后来吵架。
一种方式比另一方好吗?
答案 0 :(得分:2)
第一个是在编译时检查的,所以我会选择那个。我假设如果第二个示例中的“Enabled”属性无效,则会出现运行时错误。
答案 1 :(得分:2)
你应该注意到另一个区别:
使用数据绑定(方法2),如果对象实现了INotifyPropertyChanged,并且如果在UI层之外更改了object.Enabled,则checkbox.checked状态将自动更改。