Заполнение ListBox списком <Entity> - PullRequest
0 голосов
/ 10 января 2012

Я использую LINQ to Entites в своем приложении WindowsForm.

Я пытаюсь заполнить Lisbox результатом запроса:

Таким образом, мой источник данных - это список, где User - это таблица в моей базе данных и EntityType в моей модели.

Проблема в том, что я хочу, чтобы элемент Displaymen был конкатенцирован из 3 разных столбцов. (User.Firstname + "" + user.LastName + "-" + user.userCode)

и ValueMember будет user.ID;

Я мог бы просто создать структуру userItem с 4-мя элементами, перебрать список User и добавить их в другой List. Но это похоже на двойную обработку.

Ответы [ 2 ]

3 голосов
/ 10 января 2012

Вы можете расширить Entity в частичном классе с помощью пользовательского свойства, например:

public partial class User
{
    public string Description
    {
        get
        {
             return string.Format("{0} {1} - {2}", FirstName, LastName, UserCode);
        }
    }
}

Если вы не хотите добавлять свойство, вы также можете использовать Linq Projection для создания пользовательского списка.с вычисленным свойством:

var listdata = (from u in Users
                select new
                {
                   Description = string.Format("{0} {1} - {2}", u.FirstName, u.LastName, u.UserCode).
                   Id = u.Id;    
                }.ToList();

Затем вы можете привязать listdata к вашему списку.

2 голосов
/ 10 января 2012

Почему бы вам просто не создать property в вашем model, который возвращает объединенное значение из трех columns/properties.Затем установите DisplayMemeber равным этому свойству

Другим способом может быть добавление вычисляемых столбцов в вашу таблицу.Объедините значение остальных столбцов через выражение

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