我正在开发一个winforms应用程序,我有一个从数据库绑定的comboBox,每个项目都有一个Name和一个Value:
//New item class
public class themeS
{
public string Name { get; set; }
public string Value { get; set; }
public override string ToString() { return this.Name; }
}
//Binding ComboBox Event
using (DbEntities db = new DbEntities())
{
comboBox2.Items.Clear();
IEnumerable tem = from t in db.Themes where t.idCategorie == 1 select t;
foreach (Themes Tem in tem)
{
comboBox2.Items.Add(new themeS { Value = Tem.idTheme.ToString(), Name= Tem.nomTheme });
}
}
现在我想检索所选组合框的值:
string curentIdTem = comboBox2.SelectedValue.ToString();
comboBox2.SelectedValue
的返回值始终为“NULL”,有人可以帮我吗?
答案 0 :(得分:1)
您正在向themeS
投射课程int
,但这不起作用。
如果您希望int
课程中的Value
媒体资源具有themeS
值。
然后您可以通过这种方式检索它:Int32.TryParse
int currentItem = 0;
Int32.TryParse(((themeS)comboBox2.SelectedValue).Value, out currentItem);
答案 1 :(得分:1)
试试这个:
int curentIdTem = Convert.ToInt32(((themeS)comboBox2.SelectedItem).Value);
答案 2 :(得分:1)
如果您想使用SelectedValue
,则需要在ValueMember
上设置ComboBox
示例:
comboBox1.ValueMember = "Value";
.....
int value = (int)comboBox2.SelectedValue;