Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在组合框中指定选定项的值?_C#_.net_Wpf_Combobox - Fatal编程技术网

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