gpt4 book ai didi

c# - 循环 xaml 元素

转载 作者:行者123 更新时间:2023-11-30 15:35:41 27 4
gpt4 key购买 nike

我有一个字符串数组。对于这些字符串中的每一个,我想创建一个单独的 xaml 元素(<menuitem> 来自外部库):

<MenuItem Header="Update">
<MenuItem Header="arrayvalue1" Command="{Binding UpdateCommand}" />
<MenuItem Header="arrayvalue2" Command="{Binding UpdateCommand}" />
<MenuItem Header="arrayvalue3" Command="{Binding UpdateCommand}" />
</MenuItem>

我不想硬编码 3 个元素,而是想从字符串数组中创建这些元素。

这可能吗?如果可能,怎么做?

最佳答案

MenuItem 是一个 ItemsControl,因此您可以将任何集合绑定(bind)到 ItemsSource 属性,它会为您生成子项。对于 MenuItem,生成的子项也是 MenuItem。要将绑定(bind)值应用于这些子项的属性,您可以设置将应用于每个子项的 ItemContainerStyle。由于您要使用的命令位于顶级 DataContext 上,因此您将需要使用更多的间接绑定(bind),这可能会有所不同,具体取决于您使用的技术。以下是 WPF 的外观:

        <MenuItem Header="Update" ItemsSource="{Binding Strings}">
<MenuItem.ItemContainerStyle>
<Style TargetType="{x:Type MenuItem}">
<Setter Property="Command" Value="{Binding Path=DataContext.UpdateCommand, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type Menu}}}" />
<Setter Property="Header" Value="{Binding}" />
</Style>
</MenuItem.ItemContainerStyle>
</MenuItem>

关于c# - 循环 xaml 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14567780/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com