我有一个带有同一种SubItems的RibbonApplicationMenuItem。 SubItems由Code添加。
选择RibbonApplicationMenuItem后,在处理点击事件时会显示错误的currentItem。
CurrentItem始终是我的RibbonApplicationMenuItems集合中的第一个元素。
private void ApplicationOpenPileList_Click(object sender, RoutedEventArgs e) {
RibbonApplicationMenuItem SourceApplicationMenu = null;
RibbonApplicationMenuItem SenderApplicationMenu = null;
Pile currentPile = null;
if (e.OriginalSource != null) {
if (sender is RibbonApplicationMenuItem && e.OriginalSource is RibbonApplicationMenuItem) {
SenderApplicationMenu = sender as RibbonApplicationMenuItem;
SourceApplicationMenu = e.OriginalSource as RibbonApplicationMenuItem;
}
}
}
SourceApplicationMenu包含单击的MenuItem,但我的连接对象丢失了。 SenderApplicationMenu包含corrospondig ParentMenuItem,其中包含一个名为CurrentItem的属性。
事件在Ribbonwindow的XAML代码中为主要元素分配:
<ribbon:Ribbon.ApplicationMenu>
<ribbon:RibbonApplicationMenu SmallImageSource="Resources\Icons\Scanner.ico">
<ribbon:RibbonApplicationMenuItem Header="Neu" ImageSource="Resources\Icons\report_add.png"/>
<ribbon:RibbonApplicationMenuItem Header="Öffnen" ImageSource="Resources\Icons\open_folder.png" Name="ApplicationOpenPileList" Click="ApplicationOpenPileList_Click" />
<ribbon:RibbonApplicationMenuItem Header="Dokumententypen" ImageSource="Resources\Icons\application_form.png" DisplayMemberPath="Name" Click="RibbonApplicationMenuItem_Click" />
<ribbon:RibbonApplicationMenuItem Header="Schließen" ImageSource="Resources\Icons\cross.png"/>
</ribbon:RibbonApplicationMenu>
</ribbon:Ribbon.ApplicationMenu>
在这种情况下,CurrentItem始终包含带有对应对象的第一个SubItem。 任何想法?
答案 0 :(得分:0)
问题很简单。
SubItems没有Click事件处理程序,因此事件被路由到上层处理程序。
我现在已经为每个Item实现了处理程序,一切都很好。