Silverlight 绑定未更新多个UI元素

Silverlight 绑定未更新多个UI元素,silverlight,mvvm,binding,Silverlight,Mvvm,Binding,我在Silverlight页面上有一些按钮,其中不透明度绑定到ViewModel上的两个属性之一。我使用按钮命令来更改属性,理论上会影响绑定到该属性的所有按钮,但唯一受影响的控件是启动该命令的按钮(任意一个) 你知道为什么附加绑定不起作用吗 整个过程实际上有点复杂,按钮位于控件上,绑定作为DependencyProperties映射回VM,绑定的属性通过ValueConverter。听起来您需要为正在更改的属性引发事件。这将让绑定到它们的控件知道有更改,它们需要返回并获取最新值。我发现了问题。不

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

你知道为什么附加绑定不起作用吗


整个过程实际上有点复杂,按钮位于控件上,绑定作为DependencyProperties映射回VM,绑定的属性通过ValueConverter。

听起来您需要为正在更改的属性引发事件。这将让绑定到它们的控件知道有更改,它们需要返回并获取最新值。

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

我将其更改为移除OpacityProperty到IsEnabledProperty的绑定,并从RelayCommand声明中移除谓词。现在一切都按计划进行了


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

正如你所说的“理论上”它应该是可行的,但如果没有复制该问题的样本,就不可能回答。已经完成了。这就是被按下的按钮的不透明度被改变的方式。对于绑定到同一VM属性的其他按钮,这种情况不会发生。