xaml - Windows UI 库 - 如何调用动态添加的 NavigationView.MenuItems
问题描述
我正在使用 windows ui 库和 windows 模板工作室。目前,它们winui:NavigationView.MenuItems
已添加到 xaml 中。
<winui:NavigationView>
<winui:NavigationView.MenuItems>
<winui:NavigationViewItem x:Uid="Shell_Main" Icon="Home" helpers:NavHelper.NavigateTo="views:MainPage" />
</winui:NavigationView.MenuItems>
<Grid>
<Frame x:Name="shellFrame" />
</Grid>
</winui:NavigationView>
现在我在 .cs 代码中添加了更多项目。
for(int i = 0; i < 5; i++)
{
WinUI.NavigationViewItem navigationViewItem = new WinUI.NavigationViewItem();
navigationViewItem.Content = "AAA " + i.ToString();
navigationView.MenuItems.Add(navigationViewItem);
}
如何编写代码,当我单击添加的项目时,应用程序导航到相关页面。一个相关的回购是here。
解决方案
helpers:NavHelper.NavigateTo
Windows 模板工作室的默认配置是为每个 NavigationViewItem应用附加属性 ( )。
<winui:NavigationViewItem x:Uid="Shell_Main" Icon="Document" helpers:NavHelper.NavigateTo="views:MainPage" />
因此,如果您想在代码隐藏中创建 NavigationViewItem,您仍然需要为每个 NavigationViewItem 应用附加属性,如下所示:
WinUI.NavigationViewItem navigationViewItem = new WinUI.NavigationViewItem();
navigationViewItem.Content = "AAA " + i.ToString();
navigationViewItem.SetValue(NavHelper.NavigateToProperty, typeof(Views.APage));
推荐阅读
- firebase - 从 Firebase Firestore 访问数据时出现未定义数据错误
- javascript - .joinedAt 属性总是在 discord.js 中返回 undefined
- r - 如何水平连接两个表并匹配 R 中的 2 个不同的列名?
- python - 对于 multiprocessing.Pool(),初始化选项有哪些?
- python - 使用 BERT 作为集线器编译模型。KerasLayer 在 TPUStrategy 范围内失败
- php - 如何从 JSON_SEARCH 语法中获取数组索引
- reactjs - 无法将 JSON 对象的子属性定位到存储在渲染方法中的状态中的反应中
- java - 创建时立即获取sql行的ID
- c# - 当您必须同时拥有异步和同步版本的代码时,如何避免违反 DRY 原则?
- javascript - 未捕获的 DOMException:无法在“文档”上执行“querySelector”:“”不是有效的选择器