C# 将Caliburn Micro与Microsoft Ribbon控件和Ribbon应用程序菜单一起使用

C# 将Caliburn Micro与Microsoft Ribbon控件和Ribbon应用程序菜单一起使用,c#,wpf,xaml,caliburn.micro,ribbon,C#,Wpf,Xaml,Caliburn.micro,Ribbon,我正在尝试使用Caliburn Micro和MVVM作为菜单。我当前正在使用位于System.Windows.controls.Ribbon中的功能区控件。对于选项卡中的常规按钮,使用x:Name绑定单击事件可以正常工作,但RibbonApplicationMenu中的菜单项不起作用。这是一个bug还是我必须在bootstrapper类中做一些额外的工作来确保CM找到RibbonApplicationMenuItems?我在CMV2.0.1上 这里有一些例子: XAML: 仍然在挖掘这一点,但名

我正在尝试使用Caliburn Micro和MVVM作为菜单。我当前正在使用位于System.Windows.controls.Ribbon中的功能区控件。对于选项卡中的常规按钮,使用x:Name绑定单击事件可以正常工作,但RibbonApplicationMenu中的菜单项不起作用。这是一个bug还是我必须在bootstrapper类中做一些额外的工作来确保CM找到RibbonApplicationMenuItems?我在CMV2.0.1上

这里有一些例子:

XAML:


仍然在挖掘这一点,但名称似乎没有任何作用,实际上模拟了我这边的一个样本。cm:Message.Attach=“[Event Click]=[Action NewApp()]”有效。实际上很奇怪,你可能想去GitHub回购,并填写这是否真的是一个问题

由于这些项不在与可视化树菜单项相关的菜单项中,因此在查找要执行的方法时可能会遇到问题。我想你点击了,什么也没发生?Cal:Action.TargetWithoutContext=“{Binding path=DataContext,ElementName=Ribbon}”将其放置在applicationmenu上。单击“是”,则不会发生任何事情。似乎CM不会遍历树中的所有节点?或者在这种情况下,它是一个子树“ApplicationMenu”,它有自己的树,也许这就是问题所在?这是CM如何获取模板和/或上下文菜单(如您的情况)的问题,上面代码中的操作依赖项对象应该工作。在可视树上不立即可见的,将在和节点上对其进行度量,但未成功。可能有什么问题?仍在深入研究这个问题,但名称似乎没有任何作用,实际上在我这边模拟了一个样本。cm:Message.Attach=“[Event Click]=[Action NewApp()]”有效。实际上很奇怪,如果这真的是个问题,你可能想去GitHub回购网站看看。
<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>
public void AppNew()
{
    //this will not be called
    New();
}

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