绑定不会更新多个UI元素

时间:2011-07-22 23:30:54

标签: silverlight mvvm binding

我的Silverlight页面上有一些按钮,不透明度被绑定到我的ViewModel上的两个属性之一。我正在使用更改属性的button命令,理论上会影响绑定到该属性的所有按钮,但受影响的唯一控件是启动命令的按钮(其中任何一个)。

关于为什么附加绑定不起作用的任何想法?

整个事情实际上有点复杂,其中按钮位于Control上,绑定为DependencyProperties映射回VM,绑定属性通过ValueConverter。

2 个答案:

答案 0 :(得分:0)

听起来你需要为正在改变的属性引发INotifyPropertyChanged.PropertyChanged事件。这将使绑定到它们的控件知道存在更改,并且需要返回并获取最新值。

答案 1 :(得分:0)

我发现了问题。不透明度绑定不起作用,但发生的事情是按钮根据我在RelayCommand中设置的谓词禁用自身。它看起来像我想要的效果,但只影响按下按钮,因为每个按钮都绑定到一个单独的ICommand。

我将其更改为删除将OpacityProperty的绑定更改为IsEnabledProperty,并从RelayCommand声明中删除谓词。这一切现在按预期工作。

我不知道为什么按钮在检查谓词时会更改为禁用的视图(并发现它为false),但如果条件发生变化则永远不会改回。奇