根据选定的组合框项目设置文本框文本

问题描述 投票:-1回答:1

目前,我正在研究从Oracle数据库调用的组合框中包含的元素。我要寻找的是选择一个项目时,该元素的ID显示在文本框中,而不是项目本身被选中。为此,生成一个SelectionChanged事件,其中通过Switch Case选择了元素被其ID替换。

 private void cb_roles_SelectionChanged(object sender, SelectionChangedEventArgs e)
    {
        if (cb_roles.Text != "")
        {

            txt_id_rol.Text = cb_roles.SelectedItem.ToString();

            switch (cb_roles.Text)
            {

                case "ADMINISTRADOR":
                    txt_id_rol.Text = "R1";
                    break;
                case "VENDEDOR":
                    txt_id_rol.Text = "R2";
                    break;
                case "CLIENTE":
                    txt_id_rol.Text = "R3";
                    break;
                case "ADMINISTRATIVO":
                    txt_id_rol.Text = "R4";
                    break;
            }

        }
    }

问题发生,当我尝试单击时,第一次尝试在文本框中没有显示任何内容,但是当再次选择时,它显示了ID,但是以一种无序的方式进行,并且不符合切换案例中建立的顺序。例如,没有选择项目“” ADMINISTRATIVO“,它会显示与项目” CLIENTE“相对应的ID R3,依此类推,该字符随机显示在文本框中

c# wpf combobox textbox selectionchanged
1个回答
-1
投票

通过下面的代码行,我找到了所需的解决方案,我设置了所选项目并在文本框中显示其ID。

string valor = (System.Data.DataRowView)cb_roles.SelectedItem).Row.ItemArray[0].ToString(); 

然后将值传递给我需要的文本框,如下所示

txt_id_rol.Text = valor;

我希望它将对所有人有用。

© www.soinside.com 2019 - 2024. All rights reserved.