gpt4 book ai didi

c# - ComboBox 显示错误的字符串列表

转载 作者:太空宇宙 更新时间:2023-11-03 23:11:22 25 4
gpt4 key购买 nike

在 XAML 中,我将 ComboBox 绑定(bind)到名为 Tags 的字符串 List,我在名为 的静态类中拥有它设置。这是 XAML:

<Window x:Class="CSV_To_Tags_App.Window2"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:loc="clr-namespace:CSV_To_Tags_App"
Title="Window2" Height="435" Width="566">
<Grid>
<StackPanel Orientation="Horizontal" DataContext="x:Static loc:Settings">
<ItemsControl ItemsSource="{x:Static loc:Settings.Tags}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<ComboBox ItemsSource="{Binding}"/>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</StackPanel>
</Grid>
</Window>

这是我的 Settings 类:

public static class Settings
{
public static List<string> Tags = new List<string>() { "Header1", "Header2", "Header3", "Header4" };
}

所以,我想要一个组合框,它会显示一个标签列表。我正在使用 DataTemplate,因为稍后我必须显示更大的对象列表,并且每个对象旁边都会显示 ComboBox

相反,我得到了这个:

enter image description here

我得到四个 ComboBoxes,每个都包含我放入列表中的标签的字母。所以第一个 ComboBox 有字母:H-e-a-d-d-e-r-1,第二个有 H-e-a-d-d-e-r-2,依此类推。

我宁愿得到一个包含所有四个标签的 ComboBox

我怎样才能做到这一点?

最佳答案

您不需要为此目的使用 StackPanel。您只需要一个 ComboBox 并将其设置为 ItemsSource。像这样:

<ComboBox ItemsSource="{x:Static loc:Settings.Tags}" VerticalAlignment="Top"/>

如果你想使用DataTemplate,你可以像这样使用它:

<ComboBox ItemsSource="{x:Static loc:Settings.Tags}" VerticalAlignment="Top">
<ComboBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding}"></TextBlock>
</StackPanel>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>

关于c# - ComboBox 显示错误的字符串列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39096100/

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