Вопрос

Сначала у меня есть Listbox и я установил DataSource в MyObjectCollection

MyObjectCollection реализует интерфейс IListSource, который содержит MyObject's

MyObject имеет метод

public override string ToString()
{
    return "test";
}

В окне списка теперь отображается «тест» для каждого элемента в MyObjectCollection.

Но если я применю интерфейс IListSource к MyObject, тоже. В окне списка отображается пустая строка. Как это исправить в " MyObject " учебный класс. Обходной путь должен исправить это в событии Listbox Format, но чем каждый элемент GUI должен реализовать этот обходной путь: /

Это было полезно?

Решение

Как правило, должны быть списками, или должны быть сущностью для привязки. Если это список ( IList или IListSource ), то большая часть API привязки данных будет предполагать, что вы действительно хотите (для сценариев простого связывания, то есть одной строки), < em> первый элемент из подсписка.

Я бы просто изменил его так, чтобы MyObject не реализовывал IListSource , но инкапсулирует это, возможно выставляя его через свойство Items . Вы также можете посмотреть, будет ли работать пользовательский TypeConverter (я исследую ...)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top