선택할 수있는 항목 (MenuItem)이있는 일부 하위 메뉴가있는 ContextMenu가 있습니다. ContextMenu가 열리면 현재 선택된 항목을 재귀 적으로 열려고합니다. 따라서 다음 코드를 가지고 있습니다..NET MenuItem.IsSubmenuOpen = true는 처음에만 작동합니다.
protected override void OnOpened(RoutedEventArgs e) {
base.OnOpened(e);
OpenCurrentSubMenu(Items);
}
private static bool OpenCurrentSubMenu(ItemCollection itemCollection) {
foreach (MenuItem item in itemCollection) {
if (item.IsChecked) {
return true;
}
else if(OpenCurrentSubMenu(item.Items)) {
item.IsSubmenuOpen = true;
return true;
}
}
return false;
}
또한 하나의 항목 만 선택되도록하는 다른 코드가 있습니다.
이것은 하위 메뉴에서 항목을 처음 선택할 때 크게 효과가있는 것 같습니다.
그러나
, I이 2 번 그것을 다시 열 컨텍스트 메뉴를두고, 선택된 메뉴 : I이 때의 ContextMenu, 선택된 항목에 개방 개방 하위 메뉴 캐스케이드를 다시 열어 열지 않습니다
는 아는 사람 있나요 왜, 어떻게 그것을 해결하기 위해?
제목에 "IsItemChecked"가 표시되지만 코드에 "IsSubmenuOpen"이 표시됩니다. –
@ScottRippey - 업데이트 감사. – DiamondBack
더 많은 레벨의 메뉴로 이것을 테스트 할 수 있습니까? 각각 다시 열면 다시 열 수있는 수준이 낮습니까? 아니면 항상 최종 메뉴가 열리지 않습니까? –