caliburn micro:重用现有命令

时间:2014-07-30 13:28:42

标签: wpf action caliburn.micro routed-commands

我有一个简单的wpf应用程序,带有一个Control(比方说一个Button),它可以触发一个Command(比方说ApplicationCommands.Copy)。我希望相同的Control(Button)是上下文敏感的,也就是说,它根据当前聚焦的Control执行适当的操作(发送Copy命令)。因此,如果焦点位于TextBox上,则命令将发送到文本框,而如果另一个Control具有焦点,则命令将发送给它。 现在,我有另一个Control,一个ContentControl,其模型通过Caliburn Micro的View.Model =“{Binding ...}”属性在XAML中设置。

我想维护按钮的“上下文敏感度”,也就是说,复制命令应由ContentControl的ViewModel处理。

尝试在模型视图中设置绑定到正确模型的方法。这样可以正常工作,但另一方面,使用Caliburn Micro处理类似情况的建议方法似乎是避免命令,而是使用Actions。是否可以仅使用操作实现类似的处理?将现有命令与Caliburn Micro集成的建议方法是什么?

提前致谢!

1 个答案:

答案 0 :(得分:0)

默认操作始终与控件名称

相关联
<Button x:Name="Copy" Content="Copy"/>
在viewmodel中

public void Copy()
{
}

如果你想让同一个按钮做多个功能,你可以在方法本身中做到这一点

public void Copy()
{
   // check and get which control has focus

   // copy content to the control that has focus
}