2011-12-16 3 views
1

ラベルの内容を確認したい場合は、ラベルが変更された場合はイベントを発生させる必要があります。 私は日、週または月の列挙型を持っています。その値の1つがラベルに入っていれば、ラベルの値に従ってチャートを変更したいのですか?ラベルの内容をチェックし続けたいですか?

+0

誰がラベルを変更していますか?同じWPF実行ファイルのどこか他のコード –

+0

私は、ラベル – V4Vendetta

+0

の内容を駆動しているコンポーネントをチェックする方が良いと思うのですが、label_changeイベントはありませんか? – Sandy

答えて

6

あなたはコンテンツがラベルのコンテンツ広告火災のイベントをチェックしたり、あなたが欲しいものを行うことができます「//プロパティ変更ロジックを追加」で

DependencyPropertyDescriptor dpd = DependencyPropertyDescriptor.FromProperty(ContentControl.ContentProperty, typeof(Label)); 
      if (dpd != null) 
      { 
       dpd.AddValueChanged(label1, delegate 
       { 
        // Add property change logic. 
       }); 
      } 

を変更したときに知っている次のコードを使用することができます。

+0

ヘルプのためのthx – Letoir

+0

私はブール値をチェックするのにこれを使うことができると思いますか?ブール値はイベントとしてこれを持っていますか? – Letoir

1

INotifyPropertyChangedを実装するオブジェクトのプロパティにラベルのContentプロパティをバインド(双方向)する必要があります。プロパティに変更があるたびに、PropertyChangedイベントを呼び出す必要があります。

+0

おそらく、OPはラベルの内容の通知を希望しているので、すでに一部のプロパティにバインドされています。もしそうでなければ、ユーザはバインディングをオーバーライドして 'Content'を手動で設定します。したがって、このアプローチはうまくいかないでしょう。 –

+0

@Kshitij Mehtaはその点を理解していませんでした。ラベルの内容が変更された場合、双方向バインディングのため、これはViewModelインスタンスに反映されます。そのプロパティのセッターでは、チャートにバインドされているプロパティでいくつかの変更を行うコードを記述することができます。私はこれがよりクリーンな(MVVM)方法であると感じています。 –

関連する問題