使用Caliburn Micro和Microsoft Ribbon控件和RibbonApplicationMenu
问题描述:
我正在尝试使用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();
}
答
还是挖这一点,但归因名称似乎不为任何工作,实际上嘲笑了我的一个样本。 cm:Message.Attach =“[Event Click] = [Action NewApp()]”起作用。其实很奇怪,你可能想要通过GitHub回购下降,并填写,如果这可能实际上是一个问题。 -
因为项目不在可视化树menuitem相关,它可能有问题找到一个方法来执行。我假设你点击并没有任何反应? Cal:Action.TargetWithoutContext =“{Binding path = DataContext,ElementName = Ribbon}”放置在应用程序菜单上。 – mvermef 2014-09-03 15:43:26
是的,我点击,没有任何反应。看起来像CM不遍历树中的所有节点?或者在这种情况下,它是一个具有自己的树的子树“ApplicationMenu”,也许这就是问题所在? – tobjak75 2014-09-04 07:01:39
它是CM如何获取模板和/或上下文菜单的问题(如您的情况),上述代码中的Action依赖项对象应该可以工作。在Visual Tree上不会立即显示 – mvermef 2014-09-04 23:07:35