Составной DisplayMember для ComboBox - PullRequest
1 голос
/ 21 июля 2010

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

Вот код, который я пытаюсь заставить работать:

        innerBox.DisplayMember = @"t => t.TenantName + ""\t"" + t.Property.PropertyName + ""\t"" + t.RentalUnit.UnitNumber ";

Но это не работает, но работает:

        innerBox.DisplayMember = @"t => t.TenantName";

Как мне заставить работать композитный?

Ответы [ 3 ]

2 голосов
/ 21 июля 2010

DisplayMember может содержать только одно имя свойства! Если вы хотите комбинированный вывод, вы должны подписаться на событие Format и создать выходную строку в коде.

2 голосов
/ 21 июля 2010

Это невозможно.

Вместо этого вам следует добавить свойство к базовым объектам.

0 голосов
/ 01 июня 2011

Я хотел иметь «[code] [text]» в DisplayMember и решил это, добавив свойство с помощью linq:

var actionCodes = pps.GetAllActionCodes();
if (actionCodes != null)
{
    var actionCodesNew = (from c in actionCodes
                                select new
                                {
                                    c.Code,
                                    c.Text,
                                    CodeAndDesc = string.Format("{0} {1}", c.Code, c.Text).Trim()
                                }).ToArray();
            comboBox.Items.AddRange(actionCodesNew);
            comboBox.DisplayMember = "CodeAndDesc";
        }
}

Работает нормально, если производительность не является проблемой. :)

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