带有Click事件处理程序的WPF命令

Tom*_*as1 8 wpf command

当我Command在一个Button控件中使用与Click事件连接的事件处理程序永远不会引发,

我如何使用Command和处理Click事件处理程序?

Joh*_*wen 18

您可以将ICommand附加到另一个属性并从Click处理程序执行它.

<Button x:Name="MyButton" Tag="{x:Static ApplicationCommands.Stop}" Click="MyButton_Click" />
Run Code Online (Sandbox Code Playgroud)

并在处理程序中:

private void MyButton_Click(object sender, RoutedEventArgs e)
{
    var button = sender as Button;
    if (button != null)
    {
        var command = button.Tag as ICommand;
        if (command != null)
            command.Execute(button.CommandParameter);
    }
}
Run Code Online (Sandbox Code Playgroud)

如果您想要保持Command禁用行为,您还需要做一些额外的工作.