【发布时间】:2023-04-03 17:41:01
【问题描述】:
我从MSDN 获取了此代码。我试图做的是类似的,但使用一个列表而不是三个不同的字符串。这么说
List<string> strList = new List<string>();
strList.Add("Created with C#");
strList.Add("Item 2");
strList.Add("Item 3");
//MSDN CODE BELOW
cbox = new ComboBox();
cbox.Background = Brushes.LightBlue;
cboxitem = new ComboBoxItem();
cboxitem.Content = "Created with C#";
cbox.Items.Add(cboxitem);
cboxitem2 = new ComboBoxItem();
cboxitem2.Content = "Item 2";
cbox.Items.Add(cboxitem2);
cboxitem3 = new ComboBoxItem();
cboxitem3.Content = "Item 3";
cbox.Items.Add(cboxitem3);
cv2.Children.Add(cbox);
试图做 cbox.Items.Add(strList);还尝试了一个 forloop 循环遍历每个元素,但这也不起作用。有什么想法可以实现这一目标吗?
XAML:
<Grid x:Name="grid44" DataContext="{StaticResource tBLPERMITSViewSource}" HorizontalAlignment="Left" VerticalAlignment="Top" Width="409">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Label Content="SPR PACKET ASSIGMENT" Grid.Column="0" HorizontalAlignment="Left" Margin="3" Grid.Row="0" VerticalAlignment="Center" FontWeight="Bold"/>
<ComboBox x:Name="sPR_ASSIGNEDComboBox" Grid.Column="1" DisplayMemberPath="SPR_ASSIGNED" HorizontalAlignment="Left" Height="Auto" Text="{Binding SPR_ASSIGNED}" ItemsSource="{Binding Items}" Margin="3,5,-114.35,5" Grid.Row="0" VerticalAlignment="Center" Width="238.35" Background="White" IsReadOnly="True" IsEditable="True" >
</ComboBox>
</Grid>
【问题讨论】:
-
您是否尝试过将组合框的 .ItemsSource 属性设置为字符串列表?例如 cbox.ItemsSource = new list
{"item1", "item2", "item3"}; -
我有,它显示为空白。但是列表中有适量的项目。不知道发生了什么。
-
“显示为空白”是什么意思?
-
因此,如果我将五个项目添加到列表中,则在组合框下会看到五个空插槽。生病添加一张图片,让你明白我的意思。 (在图像中:“bro”是从 xaml text="{binding field"}" 的属性带来的。我还会添加 xaml 以使事情更清楚。)组合框的内容是从列表中带来的,但它的不显示字符串文本。
-
它是标准的 WPF 组合框,还是您为它编辑了模板?