目前,我正在研究从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,依此类推,该字符随机显示在文本框中
通过下面的代码行,我找到了所需的解决方案,我设置了所选项目并在文本框中显示其ID。
string valor = (System.Data.DataRowView)cb_roles.SelectedItem).Row.ItemArray[0].ToString();
然后将值传递给我需要的文本框,如下所示
txt_id_rol.Text = valor;
我希望它将对所有人有用。