2010-06-07 311 views

回答

17

您可以将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); 
    } 
} 

你想也需要做一些额外的工作,如果你想保留命令禁止的行为。

+0

我用它,谢谢约翰 – Tomas1 2010-06-08 12:59:14

-3

命令是一种星期事件。好的想法命令是你不需要使用事件。实际上,如果使用Viewmodel模式,则不需要使用任何代码和事件。见继电器命令:http://blog.galasoft.ch/archive/2009/09/26/using-relaycommands-in-silverlight-and-wpf.aspx

+1

这是不对的,你需要的,如果你想查看更新之类的东西SeletedItem在视图模型或在处理背后使用代码具体的方式如何选择工作。 – 2011-08-23 12:46:44