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

时间:2010-06-07 15:30:14

标签: wpf command

当我在Command控件中使用Button时,与Click事件相关联的事件处理程序将永远不会引发,

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

3 个答案:

答案 0 :(得分:18)

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

<Button x:Name="MyButton" Tag="{x:Static ApplicationCommands.Stop}" Click="MyButton_Click" />

并在处理程序中:

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);
    }
}

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

答案 1 :(得分:0)

答案 2 :(得分:-3)

命令是一种周活动。善意思考命令是你不需要使用事件。实际上,如果使用Viewmodel模式,则根本不需要使用代码和事件。请参阅中继命令:http://blog.galasoft.ch/archive/2009/09/26/using-relaycommands-in-silverlight-and-wpf.aspx