简体   繁体   English

检查组合框c#.net Windows窗体的valuemember中的值

[英]check value in valuemember of combobox c# .net windows forms

I've a combobox and it's valuemember has the values : AA, BB, CC, DD, EE. 我有一个组合框,它的值成员具有以下值:AA,BB,CC,DD,EE。

Combobox Valuemember is populated from a dataset. 组合框Valuemember从数据集中填充。

User enters a value in a textbox and I need to be able to check whether the value entered in the textbox is part of the combobox Valuemember list. 用户在文本框中输入一个值,我需要能够检查在文本框中输入的值是否是组合框Valuemember列表的一部分。

Combobox is populated as below: 组合框填充如下:

OracleCommand oraCmd = new OracleCommand();
oraCmd.Connection = oraConn;
oraCmd.CommandType = CommandType.StoredProcedure;
oraCmd.CommandText = "sp1";

OracleCommandBuilder.DeriveParameters(oraCmd);
oraCmd.Parameters["Val1"].Value = "Val1";
oraCmd.Parameters["Val2"].Value = "Val2";

//Populate DataSet
OracleDataAdapter oraAdapter = new OracleDataAdapter(oraCmd);
DataSet oraDataSet = new DataSet();
oraAdapter.Fill(oraDataSet);

combobox1.ValueMember = oraDataSet.Tables[0].Columns["Val1"].ToString();
combobox1.DisplayMember = oraDataSet.Tables[0].Columns["Val2"].ToString();
combobox1.DataSource = oraDataSet.Tables[0].DefaultView;

I tried this but it does not work: 我试过了,但是不起作用:

if (combobox1.ValueMember.Contains("XX"))
{
    combobox1.SelectedItem = "XX";
}
else
{
    combobox1.SelectedItem = "";
}

Help please! 请帮助!

The ValueMember and DisplayMember properties just specify which values in the underlying data source should represent the underlying value of each item, and the value displayed to the user. ValueMemberDisplayMember属性仅指定基础数据源中的哪些值应表示每个项目的基础值,以及显示给用户的值。

Try assigning the data source, and value and display members, like this instead: 尝试分配数据源,值和显示成员,如下所示:

combobox1.DataSource = oraDataSet.Tables[0];
combobox1.ValueMember = "Val1";
combobox1.DisplayMember = "Val2";

Then try searching for the desired value like this: 然后尝试搜索所需的值,如下所示:

if (((DataTable)combobox1.DataSource).AsEnumerable()
                                     .Cast<DataRow>()
                                     .Select(x => Convert.ToString(x["Val1"]))
                                     .Contains("XX"))
{
    ...  // value found in combobox
}

Alternate syntax you can try: 您可以尝试使用其他语法:

if (comboBox1.Items.Cast<DataRowView>()
                   .Select(x => Convert.ToString(x["Val1"])
                   .Contains("XX"))
{
    ...
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM