Как показать свойство подобъекта в GridView с помощью LINQ - PullRequest
0 голосов
/ 15 августа 2011

Я использую LINQ для запроса таблицы, которая имеет внешний ключ для другой таблицы, я запустил SQLMetal и сгенерировал классы для таблиц (так как я использую SQL Compact Edition, у меня нет большого выбора), и я создание столбцов для моего вида сетки вручную.

Я установил DataPropertyNames для каждого из столбцов, и они работают для свойств родительских объектов, однако я хотел бы заполнить столбец значением из одной из внешних таблиц (которая в данном случае называется ' проблемы »), я попытался установить для DataPropertyName значение« проблемы. Название », однако это не имеет никакого эффекта, и столбец остается пустым.

Если я зациклюсь на результате запроса и выведу значение «Issues.Title», они присутствуют, однако они все равно не отображаются в столбце. DataPropertyName не поддерживает подобъекты, подобные этому, или это связано с LINQ? Я попытался настроить свой запрос на использование соединения с внешними ключами, но у меня тот же результат.

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

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

1 Ответ

1 голос
/ 15 августа 2011

Похоже, вам придется создавать делегирующие свойства в вашем родительском объекте, например:

public string IssueTitle
{
    get { return issues.Title; }
}

и т. Д.

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

РЕДАКТИРОВАТЬ Вы можете также рассмотреть возможность использования модели представления.

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