Событие checkedListBox - получение свойств выбранного элемента/объекта

Я заполняю контрольный список объектом, который обрабатывает путь к компонентам. Как получить конкретное свойство объекта, связанного с выбранным индексом? В настоящее время я использую событие SelectedIndexChanged, которое я пробовал SelectedItem, SelectedValue, SelectedIndex. Я могу получить тип свойства, но не значение с помощью checkedListBox1.SelectedValue.GetType().GetProperty("fullPath"). Спасибо.

            Class1 c1;
            List<object> files = new List<object>();

            foreach(var value in filteredFiles1)
            {
                c1 = new Class1(value);
                checkedListBox1.DisplayMember = "fileName";
                files.Add(c1);                    
            }

            checkedListBox1.DataSource = files;  

person topofsteel    schedule 04.02.2013    source источник


Ответы (1)


Вы должны иметь возможность привести CheckedListBox SelectedItem к экземпляру вашего класса, а затем получить доступ к любым свойствам в пределах области видимости. Вот пример:

    private void checkedListBox1_SelectedIndexChanged(object sender, EventArgs e)
    {
        Class1 c = (Class1)checkedListBox1.SelectedItem;
        MessageBox.Show(c.fileName);
        MessageBox.Show(c.fullPath);
    }

Я советую сделать дополнительную проверку, чтобы убедиться, что объект не нулевой (т.е. в случае, если SelectedIndex стало -1).

person Mash    schedule 04.02.2013