|
Как правильно отображать данные на DataGridView
|
|||
---|---|---|---|
#18+
Есть простые DTO классы (например Тех.Паспорт, Автомобиль, Владелец и т.д.), есть ORM (sqlite-net), которая отражает таблицы из реляционной БД на списки объектов этих классов (например список всех автомобилей, у которых владельцы старше 25 лет). Как правильно заполнить датагрид, если помимо данных основного класса нужны данные справочных классов (отобразить автомобили, их владельцев и их тех. паспорта)? Т.к. DataSource может принимать IEnumerable, то собрал вот такой LINQ-запрос: Код: c# 1. 2. 3. 4. 5. 6. 7. 8.
Вроде все устраивает, но тогда отпадает дизайнер таблицы, т.е. я не могу нарисовать колонки, наименовать их, расставить обработчики, сортировку и т.д. Только рантайм. Или нет? Как вариант могу нарисовать некий производный класс, в котором соберу нужные поля из нескольких классов, который будет соответствовать конкретному DataGrid. Привяжусь к нему в дизайн тайме, а потом отображу свой IEnumerable на этот сводный класс. Но это решение мне не очень нравится, кода больше, причем дублирующегося. Подскажите как обычно поступают в таких случаях? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2014, 15:09 |
|
Как правильно отображать данные на DataGridView
|
|||
---|---|---|---|
#18+
Максим Н, ну как бы да, сам собой напрашивается вариант создать производный класс со всеми необходимыми свойствами. Однако, я вот на что обратил внимание. В коде используются ToList. Зачем? Ведь в таком случае все таблицы целиком будут загружены из БД и лишь затем, уже на клиенте, произойдёт фильтрация по equals. Имхо, ToList либо совсем не нужен, либо достаточно одного, применённого к результату запроса, уже после объединения. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2014, 15:33 |
|
Как правильно отображать данные на DataGridView
|
|||
---|---|---|---|
#18+
petalvikну как бы да, сам собой напрашивается вариант создать производный класс со всеми необходимыми свойствами. +1 Вместо var joinedData = List<MyClass> joinedData = ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2014, 00:00 |
|
Как правильно отображать данные на DataGridView
|
|||
---|---|---|---|
#18+
Ах да. bindingSource1 надо определить в дизайнере ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2014, 00:03 |
|
Как правильно отображать данные на DataGridView
|
|||
---|---|---|---|
#18+
petalvikМаксим Н, Однако, я вот на что обратил внимание. В коде используются ToList. Зачем? Ведь в таком случае все таблицы целиком будут загружены из БД и лишь затем, уже на клиенте, произойдёт фильтрация по equals. Имхо, ToList либо совсем не нужен, либо достаточно одного, применённого к результату запроса, уже после объединения. ToList не нужен, это пример на скорую руку был. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.05.2014, 10:00 |
|
|
start [/forum/topic.php?fid=20&msg=38639290&tid=1402939]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
60ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
2ms |
others: | 334ms |
total: | 480ms |
0 / 0 |