借助以下代碼,我可以找到我想要的 NavigationViewItem
var item = navigationView.MenuItems
.OfType<NavigationViewItem>()
.FirstOrDefault(menuItem => (string)menuItem.Content == (string)args.InvokedItem);
但如果 NavigationViewItem 本身有其他選單項,則此代碼不再有效。如何在所有選單項中找到我想要的 NavigationViewItem?
uj5u.com熱心網友回復:
假設它NavigationViewItem也有一個集合MenuItems,你可以使用一些像這樣的自參考方法:
(bool, NavigationViewItem?) SearchItems(List<NavigationViewItems> itemsToSearch, string argsInvokedItem) {
foreach (var item in itemsToSearch)
{
if((string)item.Content == argsInvokedItem) {
return (true, item);
}
if(item.MenuItems.Count > 0) {
if(SearchItems(item.MenuItems, argsInvokedItem).Item1)
return (true, item);
}
}
return (false, null);
}
然后這樣稱呼它:
var result = SearchItems(navigationView.MenuItems, (string)args.InvokedItem)
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/443426.html
