C# 如何在组合框中指定选定项的值?
我有一个已经包含默认值的组合框,我想为组合框指定一个值,以便在运行时,指定的值显示为选中 这是组合框C# 如何在组合框中指定选定项的值?,c#,.net,wpf,combobox,C#,.net,Wpf,Combobox,我有一个已经包含默认值的组合框,我想为组合框指定一个值,以便在运行时,指定的值显示为选中 这是组合框 <ComboBox x:Name="MyComboBox" VerticalAlignment="Center" Width="50" Padding="1" Height="23"> <ComboBoxItem IsSelected="True">A</ComboBoxItem> <ComboBoxItem>B</Com
<ComboBox x:Name="MyComboBox" VerticalAlignment="Center" Width="50" Padding="1" Height="23">
<ComboBoxItem IsSelected="True">A</ComboBoxItem>
<ComboBoxItem>B</ComboBoxItem>
<ComboBoxItem>C</ComboBoxItem>
<ComboBoxItem>D</ComboBoxItem>
<ComboBoxItem>E</ComboBoxItem>
<ComboBoxItem>F</ComboBoxItem>
<ComboBoxItem>G</ComboBoxItem>
<ComboBoxItem>H</ComboBoxItem>
<ComboBoxItem>I</ComboBoxItem>
<ComboBoxItem>K</ComboBoxItem>
<ComboBoxItem>L</ComboBoxItem>
<ComboBoxItem>M</ComboBoxItem>
<ComboBoxItem>N</ComboBoxItem>
</ComboBox>
谢谢你的帮助 您是否尝试过这种方法: 使用visual studio,在设计视图或
.xaml
上,如果双击组合框,它将自动为.xaml.cs
文件中的SelectionChanged
生成代码。此外,在.xaml
上,当您单击组合框时,它将在“属性”选项卡上告诉您对象的名称。在本例中,我的是comboBox:
private void comboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
string selectedItem = comboBox.Items[comboBox.SelectedIndex].ToString();
Console.WriteLine(selectedItem);
}
为了简单起见,我只是把它打印到控制台上,当你退出程序时,控制台就会显示出来
因此,无论出于何种原因,要在运行时更改组合框中显示的内容的值,可以使用如下内容:
comboBox.SelectedItem = comboBox.Items[0];
这将设置为用户进行任何选择时添加到组合框中的第一项
据我所知,您需要将文本分配给组合框中已有的项目:
string MyValue = "asd";
comboBox.Items.Add(MyValue);
comboBox.Text = MyValue;
您是否尝试过这种方法: 使用visual studio,在设计视图或
.xaml
上,如果双击组合框,它将自动为.xaml.cs
文件中的SelectionChanged
生成代码。此外,在.xaml
上,当您单击组合框时,它将在“属性”选项卡上告诉您对象的名称。在本例中,我的是comboBox:
private void comboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
string selectedItem = comboBox.Items[comboBox.SelectedIndex].ToString();
Console.WriteLine(selectedItem);
}
为了简单起见,我只是把它打印到控制台上,当你退出程序时,控制台就会显示出来
因此,无论出于何种原因,要在运行时更改组合框中显示的内容的值,可以使用如下内容:
comboBox.SelectedItem = comboBox.Items[0];
这将设置为用户进行任何选择时添加到组合框中的第一项
据我所知,您需要将文本分配给组合框中已有的项目:
string MyValue = "asd";
comboBox.Items.Add(MyValue);
comboBox.Text = MyValue;
我认为这不起作用,因为您正在将
ComboBoxItem
s添加到您的ComboxBox
。尝试以编程方式将字符串添加为字符串,而不是ComboBoxItems,看看这是否有帮助
如果不想这样做,请尝试以下方法:
MyComboBox.SelectedItem = MyComboBox.Items.Select(i => i as ComboBoxItem).FirstOrDefault(i => (i.Content as string) == "The string you want to select");
编辑:将选择与您输入的字符串内容相同的项目
注意:您需要使用System.Linq添加代码>到的顶部
希望对您有所帮助我认为这不起作用,因为您正在将ComboBoxItem
s添加到您的ComboxBox
。尝试以编程方式将字符串添加为字符串,而不是ComboBoxItems,看看这是否有帮助
如果不想这样做,请尝试以下方法:
MyComboBox.SelectedItem = MyComboBox.Items.Select(i => i as ComboBoxItem).FirstOrDefault(i => (i.Content as string) == "The string you want to select");
编辑:将选择与您输入的字符串内容相同的项目
注意:您需要使用System.Linq添加代码>到的顶部
希望有帮助这是WPF应用程序吗?是的。添加标签这是WPF应用程序吗?是。添加了标记MyComboBox中的Select
。Items.Select
引发错误。我也尝试过mymbobox.Items.Add(MyValue)
,但这只会将字符串添加到组合框中,而没有默认选择mymbobox.Items.Select中的Select
会引发错误。我也尝试过MyComboBox.Items.Add(MyValue)
,但这只会将字符串添加到组合框中,而不按默认值选择。谢谢。这很有效。只是一个跟进:我使用了这个项。添加方法。但是在将项目添加到combobox时,如果项目已经存在于combobox中,是否有方法覆盖该项目?@BrunoBukavuThai您可以使用combobox覆盖已经存在于combobox中的项目。项目[i]=“新值”代码>用项目的实例号替换i谢谢。这很有效。只是一个跟进:我使用了这个项。添加方法。但是在将项目添加到combobox时,如果项目已经存在于combobox中,是否有方法覆盖该项目?@BrunoBukavuThai您可以使用combobox覆盖已经存在于combobox中的项目。项目[i]=“新值”代码>用项目的实例号替换i