从 UWP C# 中的数据列表在运行时构建 XAML 个元素?
Build XAML Elements in Runtime, From a List of Data in UWP C#?
我有一个 List<string>
在下面,
List<string> animeList = new()
{
"Current",
"Planning",
"Paused",
"Dropped",
"Custom List"
}
我想根据上面列表中的可用数据在运行时构建一个 XAML 元素。准确地说,我想构建一个来自 Microsoft.UI.Xaml.Controls
的 NavigationViewItem
,如下图,
这张图中的Xaml是硬编码的,XAML在下面,
<winui:NavigationViewItem Content="Anime List" x:Name="animeList">
<winui:NavigationViewItem.Icon>
<FontIcon Glyph=""
Style="{StaticResource FontIconStyle}"/>
</winui:NavigationViewItem.Icon>
<winui:NavigationViewItem.MenuItems>
<winui:NavigationViewItem Content="Current"/>
<winui:NavigationViewItem Content="Planning"/>
<winui:NavigationViewItem Content="Paused"/>
<winui:NavigationViewItem Content="Dropped"/>
<winui:NavigationViewItem Content="Custom List"/>
</winui:NavigationViewItem.MenuItems>
</winui:NavigationViewItem>
下面是 winui xml 命名空间,
xmlns:winui="using:Microsoft.UI.Xaml.Controls"
在这里,我不想对 NavigationViewItem
进行硬编码,而是想在运行时从上面的 animeList
构建 NavigationViewItem
。我该怎么做。
提前致谢...
您可以创建一个循环,并为每个项目创建一个新的 NavigationViewItem
public MainPage()
{
this.InitializeComponent();
foreach (string anime in animeList)
{
animeNavigationViewItem.MenuItems.Add(
new winui.NavigationViewItem
{
Content = anime
});
}
}
使用 MenuItemsSource
属性:
将 NavigationViewItem
绑定到您的项目列表
<NavigationViewItem Content="Anime List"
MenuItemsSource="{x:Bind animeList}">
<NavigationViewItem.Icon>
<FontIcon Glyph="" Style="{StaticResource FontIconStyle}"/> />
</NavigationViewItem.Icon>
</NavigationViewItem>
没有理由显式循环。
我有一个 List<string>
在下面,
List<string> animeList = new()
{
"Current",
"Planning",
"Paused",
"Dropped",
"Custom List"
}
我想根据上面列表中的可用数据在运行时构建一个 XAML 元素。准确地说,我想构建一个来自 Microsoft.UI.Xaml.Controls
的 NavigationViewItem
,如下图,
这张图中的Xaml是硬编码的,XAML在下面,
<winui:NavigationViewItem Content="Anime List" x:Name="animeList">
<winui:NavigationViewItem.Icon>
<FontIcon Glyph=""
Style="{StaticResource FontIconStyle}"/>
</winui:NavigationViewItem.Icon>
<winui:NavigationViewItem.MenuItems>
<winui:NavigationViewItem Content="Current"/>
<winui:NavigationViewItem Content="Planning"/>
<winui:NavigationViewItem Content="Paused"/>
<winui:NavigationViewItem Content="Dropped"/>
<winui:NavigationViewItem Content="Custom List"/>
</winui:NavigationViewItem.MenuItems>
</winui:NavigationViewItem>
下面是 winui xml 命名空间,
xmlns:winui="using:Microsoft.UI.Xaml.Controls"
在这里,我不想对 NavigationViewItem
进行硬编码,而是想在运行时从上面的 animeList
构建 NavigationViewItem
。我该怎么做。
提前致谢...
您可以创建一个循环,并为每个项目创建一个新的 NavigationViewItem
public MainPage()
{
this.InitializeComponent();
foreach (string anime in animeList)
{
animeNavigationViewItem.MenuItems.Add(
new winui.NavigationViewItem
{
Content = anime
});
}
}
使用 MenuItemsSource
属性:
NavigationViewItem
绑定到您的项目列表
<NavigationViewItem Content="Anime List"
MenuItemsSource="{x:Bind animeList}">
<NavigationViewItem.Icon>
<FontIcon Glyph="" Style="{StaticResource FontIconStyle}"/> />
</NavigationViewItem.Icon>
</NavigationViewItem>
没有理由显式循环。