2011-07-22 44 views
0

Silverlightページに、不透明度がViewModelの2つのプロパティのいずれかにバインドされているボタンがあります。私は、そのプロパティにバインドされたすべてのボタンに影響を及ぼすためにプロパティを変更するbuttonコマンドを使用していますが、影響を受けるコントロールはコマンドを開始するボタン(いずれか1つ)です。バインディングで複数のUI要素が更新されない

追加のバインディングが機能しない理由についてのアイデアはありますか?

実際にボタンがコントロール上にあり、DependencyPropertiesとしてのバインディングがVMにマッピングされ、バインドされたプロパティがValueConverterを経由している場合は、もっと複雑です。

+1

"理論的には"それはうまくいくはずですが、問題を再現するサンプルを使って答えるのは不可能です。 – CodeNaked

答えて

0

問題が見つかりました。不透明度のバインドは機能しませんでしたが、ボタンがRelayCommandで設定した述語に基づいて無効になっていたことが起こっていました。それは私が望む効果のように見えましたが、各ボタンが別々のICommandにバインドされていたため、ボタンが押されているだけでした。

OpacityPropertyからIsEnabledPropertyへのバインディングの変更を削除するように変更し、RelayCommand宣言から述語を削除しました。それはすべて意図どおりに機能します。

なぜ、ボタンが述語をチェックして(そしてそれが偽である)ボタンが無効なビューに変わるのかわかりませんが、条件が変わった場合は戻ってくることはありません。奇妙な

0

変更しているプロパティのイベントをINotifyPropertyChanged.PropertyChangedにする必要があるようです。これにより、変更されたことがわかっていて、戻って最新の値を取得する必要があることが、バインドされたコントロールに通知されます。

+0

すでに完了しています。ボタンが押されていると、不透明度が変更されます。同じVMプロパティにバインドされている他のボタンでは起こりません。 – Random

関連する問題