首页 > 解决方案 > 是否可以创建始终设置为 true 的不可见 xaml 命令?

问题描述

我正在使用一个窗口,我想创建一个不可见的命令(或虚拟的,我不确定它是如何调用的)并且始终检查自身(在运行时始终为真)。这样我就可以用 C# 编写一个可以用计时器控制的脚本代码。

到目前为止,我只在 xaml 中找到用于正常事件的常用命令,例如:

<KeyBinding Modifiers="Control" Key="N" Command="{Binding NewCommandFile}" />.

甚至有可能实现吗?

谢谢

标签: c#xamlicommand

解决方案


不确定这是否是您所要求的,但您可以创建自定义命令。例如,运行任意委托的命令:

public class DelegateCommand : ICommand
{
    private readonly Action execute;
    public DelegateCommand(Action execute) => this.execute = execute;

    public bool CanExecute(object parameter) => true;
    public void Execute(object parameter) => execute();

    public event EventHandler CanExecuteChanged { add{} remove{}}
}

在文件后面的代码中,您将编写

public ICommand MyCommand{ get; }
public MyViewModel(){
    MyCommand = new DelegateCommand(MyMethod);
}
public void MyMethod(){
     // Do whatever
}

并绑定

<KeyBinding Modifiers="Control" Key="N" Command="{Binding MyCommand}" />.

推荐阅读