【发布时间】:2019-05-13 00:15:43
【问题描述】:
如何将我自己在 MyOpenCommand.cs 中名为 MyOpenCommand 的书面 Open Command 绑定到 WPF 提供的预定义 Open Command?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Input;
namespace DokumentViewerSample.Commands
{
class MyOpenCommand : ICommand
{
public event EventHandler CanExecuteChanged;
public bool CanExecute(object parameter)
{
return true;
}
public void Execute(object parameter)
{
//Some opening logic!
}
}
}
通常,我会在 Window.Resources 中创建一个引用来定义一个键, 类似:
<Window.Resources>
<local:MyOpenCommand x:Key="cmd1" />
</Window.Resources>
最后将命令绑定到控件的命令属性上。
但是我怎样才能使用预定义的打开命令呢?我知道,我可以定义 BindingResources。类似的东西:
<Window.CommandBindings>
<CommandBinding Command="Open" CanExecute="Some_Handler"
Executed="Some_Handler2"></CommandBinding>
</Window.CommandBindings>
但是在这里我会在 MainWindow.xaml.cs 文件中创建回调方法,我感觉这是不对的。
如果您能向我展示最佳实践版本,我将非常感激(:
感谢您的宝贵时间!
【问题讨论】:
-
您想稍后通过 Windows 中的控件使用该命令吗?
-
是的!我想要一个控件来使用它
-
打开是一个命令。 MyOpenCommand 是另一个。你想做什么?您不能用自己的命令替换 Open 命令,但您可以处理正在引发的 Open 命令。