Caliburn微指导message.attach到所需的viewmodel

时间:2012-10-17 09:48:07

标签: c# .net wpf caliburn.micro

我在MainView中添加了另一个名为LogicView的视图。我为LogicView创建了一个上下文菜单,当单击菜单项时会发布“ConvertToCode()”消息,但是我想将名为ConvertToCode的消息发送到我的MainViewModel,而不是LogicViewModel。否则,我必须使用EventAggregator并将我的LogicViewModel中的消息发布回我的MainViewModel,这似乎非常多余。

MainViewl.Xaml:

<my:LogicView x:Name="logicView" AllowDrop="True">
      <my:LogicView.ContextMenu>
          <ContextMenu StaysOpen="True">
                <MenuItem Header="Convert To Code"
                 cal:Message.Attach="ConvertToCode()"/> //I'd like to send this to mainviewmodel
          </ContextMenu>
      </my:LogicView.ContextMenu>
 </my:LogicView>

这可以在Caliburn Micro中做到吗?

1 个答案:

答案 0 :(得分:1)

This是WP7解决问题的方法。它适用于您的情况。

来自docs

  

Action.TargetWithoutContext - 仅将Action.Target属性设置为指定的实例。字符串值用于解析   来自IoC容器的实例。