我正在尝试使用Caliburn Micro和MVVM作为菜单。我当前正在使用位于System.Windows.controls.Fribbon中的Ribbon控件。使用x:Name绑定单击事件对于选项卡中的常规按钮可以正常工作,但RibbonApplicationMenu中的菜单项不起作用。这是一个错误吗?还是我必须在引导程序类中做一些额外的工作来确保CM找到RibbonApplicationMenuItems?我使用的是CM v2.0.1。
这里的一些例子:
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回购,并填写这是否真的是一个问题