c# – 检索comboBox显示的值

我试图检索comboBox中存在的所有项目的显示值.

第一种情况:如果使用DataSource填充了comboBox:

comboBox.DataSource = myDataSet.Tables[0];
comboBox.DisplayMember = "value";
comboBox.ValueMember = "id";

…我用这段代码:

foreach (DataRowView rowView in comboBox.Items) {
    String value = rowView.Row.ItemArray[1].ToString();
    // 1 corresponds to the displayed members
    // Do something with value
}

第二种情况:如果comboBox已经填充了comboBox.Items.Add(“blah blah”),我使用相同的代码,除了我必须查看ItemArray的第一个维度:

foreach (DataRowView rowView in comboBox.Items) {
    String value = rowView.Row.ItemArray[0].ToString();
    // 0 corresponds to the displayed members
    // Do something with value
}

现在我希望能够在不知道用于填充comboBox的方案的情况下检索所有值.因此,我不知道是否必须使用ItemArray [0]或ItemArray [1].可能吗?我怎么能这样做?

解决方法:

你可以尝试这样的事情:

        string displayedText;
        DataRowView drw = null;

        foreach (var item in comboBox1.Items)
        {
            drw = item as DataRowView;
            displayedText = null;

            if (drw != null)
            {
                displayedText = drw[comboBox1.DisplayMember].ToString();
            }
            else if (item is string)
            {
                displayedText = item.ToString();
            }
        }
上一篇:实验十一 .实验十二


下一篇:c #databound ComboBox:InvalidArgument =值’1’对’SelectedIndex’无效