2014-09-02 84 views
0

我正在尝试使用Caliburn Micro和MVVM作为菜单。我目前使用位于System.Windows.Controls.Ribbon的Ribbon控件。使用x:Name绑定单击事件对于标签中的常规按钮可以正常工作,但RibbonApplicationMenu中的菜单项不起作用。这是一个错误,还是我必须在bootstrapper类中做一些额外的工作,以确保CM找到RibbonApplicationMenuItems?我在CM v2.0.1上。使用Caliburn Micro和Microsoft Ribbon控件和RibbonApplicationMenu

一些例子在这里:

XAML:

<Ribbon x:Name="Ribbon" > 
    <Ribbon.ApplicationMenu> 
     <RibbonApplicationMenu KeyTip="F"> 
      <RibbonApplicationMenuItem Header="{Binding NewText}" x:Name="AppNew" /> 
     </RibbonApplicationMenu> 
    </Ribbon.ApplicationMenu> 
    <RibbonTab Header="{Binding OverviewTabText}" > 
     <RibbonGroup x:Name="MainGroupOverview" Header="{Binding MainGroupText}"> 
      <RibbonButton Label="{Binding NewText}" x:Name="AppNewOverview" /> 
     </RibbonGroup> 
    </RibbonTab> 
</Ribbon> 

而且在ViewModel类:

public void AppNew() 
{ 
    //this will not be called 
    New(); 
} 

public void AppNewOverview() 
{ 
    //this works just fine 
    New(); 
} 
+0

因为项目不在可视化树menuitem相关,它可能有问题找到一个方法来执行。我假设你点击并没有任何反应? Cal:Action.TargetWithoutContext =“{Binding path = DataContext,ElementName = Ribbon}”放置在应用程序菜单上。 – mvermef 2014-09-03 15:43:26

+0

是的,我点击,没有任何反应。看起来像CM不遍历树中的所有节点?或者在这种情况下,它是一个具有自己的树的子树“ApplicationMenu”,也许这就是问题所在? – tobjak75 2014-09-04 07:01:39

+0

它是CM如何获取模板和/或上下文菜单的问题(如您的情况),上述代码中的Action依赖项对象应该可以工作。在Visual Tree上不会立即显示 – mvermef 2014-09-04 23:07:35

回答

0

还是挖这一点,但归因名称似乎不为任何工作,实际上嘲笑了我的一个样本。 cm:Message.Attach =“[Event Click] = [Action NewApp()]”起作用。其实很奇怪,你可能想要通过GitHub回购下降,并填写,如果这可能实际上是一个问题。 -

相关问题