Как привязать словарь <Int32, CustomClass> к выпадающему - PullRequest
0 голосов
/ 05 февраля 2010

Я видел много сообщений о привязке словаря к раскрывающемуся списку, когда значением является строка.

Что если значение является классом с определенным свойством этого класса, которое отображается в раскрывающемся списке?

Dictionary<Int32, MyClass>

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

Как отобразить свойство Yer в раскрывающемся списке, связанном с этим словарем?

1 Ответ

0 голосов
/ 05 февраля 2010

Вам необходимо использовать свойства 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";
        }
    }

Переопределенная ToString в MyDummyObject просто доказывает, что он не вызывается (это действие по умолчанию, если вы не указали DataTextField или DataValueField).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...