我试图获取ComboBox的.SelectedValue,但它总是返回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作为参考,但它对我不起作用。
发布于 2018-09-19 07:04:22
试试这个:
cmbDDLFilter.SelectedIndex = cmbDDLFilter.FindStringExact("Value")https://stackoverflow.com/questions/52395539
复制相似问题