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

标签 c# wpf .net-4.0

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

我发现我可以使用 Command => CanExecute 来避免执行该操作。在这里看到:

How to enable/disable a button in WPF?

我的问题是,我有很多 Windows,我将在其中检查权限,这是最好的方法吗?我真的需要为我拥有的每个窗口编写 2N 个命令吗?

有什么方法可以使其全局吗?
例如,我可以创建通用命令(搜索/创建/...),然后仅获取调用它的窗口并将其传递给我的 HasPermission 方法吗?

最佳答案

您绝对可以创建一个包含静态命令的静态类,并从 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...
}

然后在某些 View 中:

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

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

关于c# - 如何根据方法返回启用/禁用 WPF 按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13221204/

相关文章:

c# - 在 Xamarin.forms 中调用 Navigation.PushAsync 时如何等待过渡动画完成

wpf - 如何在 ViewModel 之间正确共享 Entity Framework ContextObject?

c# - WPF窗口无法从Revit ExternalCommand初始化

xslt - 如何在 .NET 4.0 中使用 XPath 2.0 方法?

c# - 从 SQL Server 返回一个整数值

javascript - 通过 JQuery 进行 WCF POST。如何在 JSON 中发送数组?

c# - 在 C# 中,是否可以向集合添加一个值,同时将其分配给另一个变量

c# - 不断检查 SQL Server 连接的标准方法是什么?

c# - 从 Process.Start 返回的不同引用

c# - .Net System.Runtime.Caching.MemoryCache - 存储单个集合或单个自定义对象?