根据ItemsValue设置Combobox所选项目

时间:2018-06-19 03:55:09

标签: c# wpf combobox datagrid

我有一个Combobox,其中假设一个项目的显示文本是“School”,它的Item Value是19.所以我将这个19存储到DataGrid中。

然后,我从DataGrid中检索Combobox值,然后我想要做的只是基于从DataGrid检索的值,组合框应该设置它的显示项或具有值19的SelectedItem。在上面的场景中,Combobox应该显示其选中的项“学校”,如果它的价值是19。

到目前为止,我已经编写了代码。但它总是给我一个Combobx的第一项。

            DataGrid gd = (DataGrid)sender;
        DataRowView rowSelected = gd.SelectedItem as DataRowView;
        if(rowSelected!=null)
        {
            for (int i = 0; i < comboBox1.Items.Count;i++ )
            {
                if (Convert.ToString(comboBox1.SelectedValue) == Convert.ToString(rowSelected[14]))
                {
                    index = comboBox1.Items.IndexOf(comboBox1.SelectedValue);
                }
                comboBox1.SelectedItem= comboBox1.Items[index];
            }
            textBox9.Text=rowSelected[14].ToString();

        }

2 个答案:

答案 0 :(得分:0)

将您的代码更改为

if(rowSelected!=null)
{
    int index = comboBox1.Items.IndexOf(rowSelected[14]);
    comboBox1.SelectedItem = comboBox1.Items[index];
}

  

使用组合框的FindStringExact()方法

int i = comboBox1.FindStringExact("Combo"); 
if(i >= 0)
{
}

答案 1 :(得分:0)

现在我可以根据我从WPF DataGrid检索的值来检索Combobox项目。

            for (int i = 0;i <comboBox1.Items.Count; i++)
            {
                comboBox1.SelectedIndex = i;
                if ((string)(comboBox1.SelectedValue) == Convert.ToString(rowSelected[14]))
                {
                    index = i;
                }

            }

            comboBox1.SelectedIndex = index;