看看RoutedCommand。
在 myclass 某处定义您的命令,如下所示:
public static readonly RoutedCommand Login = new RoutedCommand();
现在用这个命令定义你的按钮:
<Button Command="{x:Static myclass.Login}" />
您可以使用 CommandParameter 获取更多信息。
现在最后但并非最不重要,开始听你的命令:
在您希望做一些好事的类的构造函数中,您放置:
CommandBindings.Add(new CommandBinding(myclass.Login, ExecuteLogin));
或在 XAML 中:
<UserControl.CommandBindings>
<CommandBinding Command="{x:Static myclass.Login}" Executed="ExecuteLogin" />
</UserControl.CommandBindings>
你实现了 CommandBinding 需要的委托:
private void ExecuteLogin(object sender, ExecutedRoutedEventArgs e)
{
//Your code goes here... e has your parameter!
}
你可以开始在你的视觉树的任何地方听这个命令!
希望这可以帮助
PS您还可以使用 CanExecute 委托定义 CommandBinding,如果 CanExecute 这么说,它甚至会禁用您的命令:)
PPS 这里是另一个例子:RoutedCommands in WPF