【问题标题】:Method Not Found Caliburn Micro (DataContext issue?)找不到方法 Caliburn Micro(DataContext 问题?)
【发布时间】:2014-01-28 10:47:55
【问题描述】:

我有一个用户控件(MainView),上面有一个视图框来显示另一个用户控件(MidView),在那个用户控件里面我有一个画布,显示另一个用户控件(底部视图)。在孙子用户控件(底部视图)上,我有一个列表框,我希望能够右键单击并调用特定方法。

我有

cal:Message.Attach="[Event MouseRightButtonDown] = [Action Method1]"

在 ListBox 上,但每当我右键单击该框时,它都会检查祖父母 ViewModel (MainViewModel) 是否为“Method1”。我想我必须使用 cal:Action.TargetWithoutContext 让它在 BottomViewModel 中查看,但我不知道如何使用它。

我想

cal:Action.TargetWithoutContext="{Binding MainView}"

cal:Action.TargetWithoutContext="{Binding MainViewModel}"

会解决我的问题,但没有运气。有什么想法我哪里出错了吗?

【问题讨论】:

    标签: c# wpf xaml caliburn.micro


    【解决方案1】:

    我找到了一个旧应用程序,我在其中执行此操作是为了在 TreeView 上右键单击 Context 菜单,并且需要在实际选定项目 ViewModel 上执行一个方法,而不是父级 ViewModel

    我用过:

    <ContextMenu cal:Action.TargetWithoutContext="{Binding DataContext, RelativeSource={RelativeSource Self}}">
        <MenuItem Header="Edit" cal:Message.Attach="Edit" />
        <!-- Other Menu Items -->
     </ContextMenu>
    

    希望类似的逻辑适用于您的情况(使用您想要的事件/方法)。

    【讨论】:

      猜你喜欢
      • 2015-12-05
      • 1970-01-01
      • 1970-01-01
      • 2017-03-02
      • 1970-01-01
      • 1970-01-01
      • 2015-03-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多