当我在Command
控件中使用Button
时,与Click
事件相关联的事件处理程序将永远不会引发,
如何使用Command
并处理Click
事件处理程序?
答案 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