我有一个简单的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集成的建议方法是什么?
提前致谢!
答案 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
}