ComboBox SelectedValue为空

时间:2018-09-18 22:41:01

标签: c# winforms combobox bindingsource

我正在尝试获取.SelectedValue中的ComboBox,但是它一直返回null而不是.ValueMember中的实际值。我尝试了几种不同的方法,并想到了:

DataTable datatable = DataAccess.GetDataTable(DateTime.Now); // Get DataTable from DB call
if (datatable.Rows.Count > 0)
{
    List<object> items = new List<object>();
    foreach (DataRow row in datatable.Rows)
    {
        items.Add(new { Text = Convert.ToString(row["PersFullName"]), Value = Convert.ToString(row["PersNbr"]) });
    }

    this.cmbDDLFilter.DisplayMember = "Text";
    this.cmbDDLFilter.ValueMember = "Value";
    this.cmbDDLFilter.DataSource = items;
}

这在设置ComboBox的可视部分时有效,但是在我这样做时:

long nbr = Convert.ToInt64(this.cmbDDLFilter.SelectedValue);

即使我将.SelectedValue设置为null.ValueMember也将是"Value"

尽管我注意到.SelectedText也是null,但是.SelectedItem确实有我添加到列表中的对象。

如何使匿名对象的.Value.SelectedValue一起实际使用?

我已将此SO question用作参考,但对我而言不起作用。

1 个答案:

答案 0 :(得分:0)

尝试一下:

cmbDDLFilter.SelectedIndex = cmbDDLFilter.FindStringExact("Value")