Я знаю, что несколько ответов, которые могут сработать для вас, уже опубликованы, и этому вопросу уже 3 года, но я хотел добавить еще один вариант, потому что столкнулся с этой проблемой при привязке данных к объектам в Entity Framework.
Я привязывался к ListBox, но хотел отобразить текст из дочернего объекта. Все, что я сделал, это обработал событие ListBox.Format
и изменил ListControlConvertEventArgs.Value
. Я мог получить свой дочерний объект, потому что DisplayMember, который я выбрал для ListBox, является самим родительским объектом, и к нему можно было получить доступ в событии с помощью ListControlConvertEventArgs.ListItem
.
Например, ListBox связан с источником привязки со списком объектов objA. У objA есть свойство для дочернего объекта, objB. DisplayMember для ListBox (установлен во время разработки) является objB. Но, поскольку метод ToString()
не возвращает того, что я хочу для objB, я обрабатываю событие Format в ListBox и устанавливаю e.Value
(с e
, являющимся ListControlConvertEventArgs
) для объекта, который я ищу :
CType(e.ListItem, objA).objB.DisplayText