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();
}
因爲項目不在可視化樹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