2009-11-23 10 views
5

私はCheckBoxを持っています。これをチェックするとチェックを外すと、他のコントロールのEnabledプロパティが切り替わります。彼らは同じように動作しているように見えるが、私は1である疑いがあるベタープラクティス:CheckBox DataBindingsとCheckedChangedイベント

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

:私はこのような私のコードを見に何か持っていた:

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

をしかし、今日、私はDataBindingsで遊んで開始し、私はこれを行うことができます発見しました他のものよりも優先されます。あるいは、後で私の上に来るかもしれない予期しない動作が起こっているかもしれません。

もう一方の方法より優れていますか?

答えて

2

最初のものはコンパイル時にチェックされていますので、私はそのものと一緒に行きます。私は、2番目の例の "Enabled"プロパティが有効でない場合、実行時エラーが発生すると仮定します。

+0

また、自動的に第2のものを「リファクタリング」することはできません。 –

2

別の違いがあることに気付くべきである:オブジェクトがINotifyPropertyChangedのを実装し、object.Enabledは、UI層の外側に変更された場合、checkbox.checked状態が変更されます場合、(方法2)結合データと
が自動的に。

関連する問題