2011-07-22 77 views
0

我在我的Silverlight頁面上有不透明度綁定到ViewModel上兩個屬性之一的按鈕。我正在使用更改屬性的按鈕命令,理論上會影響綁定到該屬性的所有按鈕,但唯一受影響的控件是啓動命令的按鈕(它們中的任何一個)。綁定不更新多個UI元素

有關爲什麼附加綁定不起作用的任何想法?

整個事情實際上更復雜一點,其中按鈕位於控件上,並且綁定作爲DependencyProperties映射回VM,並且綁定的屬性將通過ValueConverter。

+1

正如你所說的「在理論上」它應該起作用,但不可能用一個能夠再現問題的樣本來回答。 – CodeNaked

回答

0

我發現了這個問題。不透明度綁定不起作用,但發生了什麼事是該按鈕是基於我在RelayCommand中設置的謂詞禁用自身。它看起來像我想要的效果,但隻影響按鈕被按下,因爲每個按鈕綁定到一個單獨的ICommand。

我將其更改爲刪除將OpacityProperty的綁定更改爲IsEnabledProperty,並從RelayCommand聲明中刪除謂詞。它現在按預期工作。

我不知道爲什麼按鈕會在檢查謂詞(並發現它爲false)時更改爲禁用視圖,但如果條件更改,則不會再變回。奇。

0

聽起來好像你需要提高正在改變的屬性的INotifyPropertyChanged.PropertyChanged事件。這將讓與他們綁定的控件知道有變化,他們需要回來並獲得最新的價值。

+0

已經完成。這就是被按下的按鈕不透明度被改變的方式。對於綁定到相同VM屬性的其他按鈕,這不會發生。 – Random