如何根据方法返回启用/禁用WPF按钮

时间:2012-11-04 17:49:20

标签: c# wpf .net-4.0

我需要根据方法的返回启用/禁用WPF按钮。
我有HasPermission方法告诉我用户是否可以点击该按钮。

我已经看到我可以使用Command => CanExecute来避免执行操作。见到这里:

How to enable/disable a button in WPF?

我的问题是,我有很多Windows会在其中检查权限,这是最好的方法吗?对于我拥有的每个窗口,我是否真的必须从2写入N命令?

有没有办法让这个global
例如,我可以创建通用命令(搜索/创建/ ...)然后只获取调用它的窗口并将其传递给我的HasPermission方法吗?

1 个答案:

答案 0 :(得分:2)

您绝对可以创建一个包含静态命令的静态类,并在XAML中的任何位置引用它们。

它是这样的:

public static class GlobalCommands
{
   //ICommand can be DelegateCommand, RelayCommand... whatever floats your boat.
   public static ICommand SearchCommand { get; set; }

   //Implementation, and more static commands...
}

然后在某些观点中:

<UserControl ...>
   ...
   <Button Content="Search" Command="{x:Static infra:GlobalCommands.SearchCommand}" />
   ...
</UserControl>

当然,infra:是映射到GlobalCommands'命名空间的xmlns命名空间。