我看到很多关于将字典绑定到下拉列表的帖子,当值是字符串时。
如果值是具有该类的特定属性的类是下拉列表中显示的那个类,该怎么办?
Dictionary<Int32, MyClass>
// Value
class MyClass {
public String Yer="123";
public String Ner="321";
}
如何在我的下拉列表中显示属于该字典的属性?
答案 0 :(得分:0)
您需要对组合使用DataTextField
和DataValueField
属性。试试这个:
private void Page_Load(object sender, EventArgs e)
{
List<MyDummyObject> data = new List<MyDummyObject>()
{
new MyDummyObject() {ID = 1, RandomBoolValue = true, SomeRandomDescription = "First item" }
,new MyDummyObject() {ID=2, RandomBoolValue = false, SomeRandomDescription = "Second item" }
};
comboBox1.DataTextField = "SomeRandomDescription";
comboBox1.DataValueField = "ID";
comboBox1.DataSource = data;
comboBox1.DataBind();
}
private class MyDummyObject
{
public int ID { get; set; }
public string SomeRandomDescription { get; set; }
public bool RandomBoolValue { get; set; }
public override string ToString()
{
return "zzzzzz";
}
}
MyDummyObject上重写的ToString只是为了证明它没有被调用(如果你没有指定DataTextField
或DataValueField
,这是默认操作。)