【问题标题】:How to enable/disable WPF button based on method return如何根据方法返回启用/禁用 WPF 按钮
【发布时间】:2012-11-05 01:59:56
【问题描述】:

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

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

How to enable/disable a button in WPF?

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

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

【问题讨论】:

    标签: c# wpf .net-4.0


    【解决方案1】:

    您绝对可以创建一个包含静态命令的静态类,并在 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: 是一个 xmlns 命名空间映射到 GlobalCommands' 命名空间。

    【讨论】:

    • 知道了,但是我如何告诉窗口调用了按钮?谢谢。
    • @eestein 您将其传递为CommandParameter。我会让 viewmodel 实现一些 ISearchable 接口并将其传递给命令。
    猜你喜欢
    • 2020-03-29
    • 2013-10-29
    • 2011-02-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-22
    • 2021-05-18
    • 2011-12-16
    相关资源
    最近更新 更多