如何将Dictionary <int32,customclass =“”>绑定到下拉列表</int32,>

时间:2010-02-05 09:39:54

标签: c# dictionary webforms

我看到很多关于将字典绑定到下拉列表的帖子,当值是字符串时。

如果值是具有该类的特定属性的类是下拉列表中显示的那个类,该怎么办?

Dictionary<Int32, MyClass>

// Value
class MyClass {
    public String Yer="123";
    public String Ner="321";
}

如何在我的下拉列表中显示属于该字典的属性?

1 个答案:

答案 0 :(得分:0)

您需要对组合使用DataTextFieldDataValueField属性。试试这个:

    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只是为了证明它没有被调用(如果你没有指定DataTextFieldDataValueField,这是默认操作。)