WPF:MVVM - 如果命令为null,则禁用按钮

Rov*_*ver 4 .net c# wpf binding mvvm

我对某些命令有约束力:

<Button Command="{Binding Save}" />
Run Code Online (Sandbox Code Playgroud)

保存是可以从列表中选择的某个对象的命令.在初始状态下,没有任何选定的对象,因此绑定不起作用,并且不会调用CanExecute.如何使用MVVM禁用此按钮?

解决方案:WPF/MVVM:当UserControl后面的ViewModel尚未初始化时,禁用Button的状态?

伙计们,感谢您的回答,并对不起重复的问题.

HCL*_*HCL 6

定义始终向CanExecute返回false的命令.在全局位置声明它,例如在App.Xaml中.您可以指定此empty-command,然后将FallbackValue所有命令绑定指定为空值.

<Button Command="{Binding Save,FallbackValue={StaticResource KeyOfYourEmptyCommand}}" /> 
Run Code Online (Sandbox Code Playgroud)


Hei*_*nzi 5

您可以在XAML中创建一个触发器,在命令等于时禁用Button x:Null.

在这个问题的答案中可以找到一个例子:WPF/MVVM:当UserControl后面的ViewModel尚未初始化时,禁用Button的状态?