【问题标题】:Retrieve comboBox displayed values检索组合框显示的值
【发布时间】:2011-09-27 12:07:51
【问题描述】:

我正在尝试检索 comboBox 中存在的所有项目的显示值。

第一种情况:如果组合框已使用DataSource 填充:

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
}

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

【问题讨论】:

  • 我认为你需要comboBox1.SelectedTextcomboBox1.SelectedValue
  • @V4Vendetta:我不是要获取 selected 项,而是要遍历 all 项。

标签: c# winforms combobox


【解决方案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();
            }
        }

【讨论】:

  • 我没有使用var关键字的直觉。谢谢:)
【解决方案2】:

在第一种情况下,Combobox 将填充 DataSource 属性。因此它的DataSource 不会为空。在第二种情况下,它将为空。所以你可以用(comboBox1.DataSource==null) 做一个if-else,然后相应地使用ItemArray[0]ItemArray[1]

【讨论】:

    【解决方案3】:

    Leito,您可以检查一下 DataSource 是否为 DataTable 以确定要执行的操作。

    if (comboBox.DataSource is DataTable)
    {
        // do something with ItemArray[1]
    }
    else
    {
        // do something with ItemArray[0]
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多