我有一个切换按钮,如下所示:
<ToggleButton
IsChecked="{Binding IsButtonChecked, Mode=OneWay}"
Command="{Binding DoNothing}"
CommandParameter="{Binding ServerViewModel}"
Content="Click Me!"></ToggleButton>
IsButtonChecked的初始值为false。
当我点击切换按钮时,正确触发了ICommand(绑定到RelayCommand),并且此命令返回CanExecute的false。WPF ToggleButton的状态现在是Checked=true,但是支持的模型仍然是IsButtonChecked = false。为什么UI更新为已选中状态,即使绑定属性不是这样?
附注
我唯一能够防止UI更新的方法是创建一个反向属性IsButtonNotChecked。然后我将该属性绑定到XAML中的IsEnabled。如果当前状态为启用,则会防止按钮点击发生。