2012-05-08 11 views
0

私は、多数のユーザーコントロールを含むwpfパッケージを持っています。これらのコントロールの1つにButtonsEnabledというプロパティがあります。これは、ユーザーコントロールのbool DependencyPropertyです。このプロパティは、そのコントロールの2つのボタンのIsEnabledプロパティにバインドされています。バインドされたプロパティが変更されたときにマルチバインディングが起動しない

このユーザーコントロールはMainWindowで使用されています。 MainWindowには、EocMonitorComMonitorという2つのビューモデルオブジェクトがあります。これらは両方とも、INotifyPropertyChangedを実装する抽象基本クラスに由来します。 UserControlのButtonsEnabledプロパティは、Statusプロパティにバインドされています。これは、マルチバインディングと、私が書いたIMultiConverterを実装するクラスを使用しています。

Statusプロパティが変更されたときにPropertyChangedイベントが発生しても、IMultiConverterは最初に呼び出された後に呼び出されないため、ButtonsEnabledプロパティの値は変更されません。その結果、ボタンは有効になりません。

これを行うには何が必要ですか?

+3

ソースコードを追加すれば、何が必要なのかが簡単に分かります。 – stukselbax

+0

おそらく 'UpdateSourceTrigger'を' PropertyChanged'に設定する必要があります。あなたがソースコードを投稿していないので、私は確信することはできません! – Dennis

+0

'UpdateSourceTrigger'は' PropertyChanged'に設定されました。 –

答えて

0

私は、このリリースのコードフリーズに達するまでに時間がなくなり、この問題を回避しました。私がやったのは、ButtonsEnabledDepdendencyPropertyMainWindowクラスに追加し、それをユーザーコントロールのButtonsEnabledプロパティにバインドしたことです。次に、MainWindowにPropertyChangedイベントハンドラを追加し、作成時にオブジェクトDbMonitorComMonitorを登録しました。私はMainWindowButtonsEnabledを正しく設定するために、PropertyChangedイベントハンドラにコードを書きました。

すべてが機能し、後でもう一方のアプローチを動作させることについて心配します。多分。