У меня есть RibbonApplicationMenuItem с подэлементами того же вида. Подэлементы добавляются кодом.
После выбора RibbonApplicationMenuItem при обработке события click отображается неправильный 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 содержит соответствующий ответ ParentMenuItem со свойством CurrentItem.
Событие назначается в 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 с соответствующим объектом.
Есть идеи?