Форма Windows: отображение значения дочернего объекта в DataGridView - PullRequest
3 голосов
/ 03 марта 2010

У меня есть объект productVariant, у которого есть дочерний объект product. Я хочу показать значение в DataGridView, кто-нибудь может дать мне знать, как это сделать?

Вот структура объекта.

alt text

Я попытался привязать «ProductVariant.Product.Name» к DataProptertyName в DataGridView, однако оно не показало никакого значения.

Может кто-нибудь помочь с этим? Большое спасибо.

Ответы [ 2 ]

0 голосов
/ 04 марта 2010

Элементы управления DataGridView не могут автоматически связывать дочерние объекты.

Если вы работаете с Win-формами, я бы предложил создать два диалоговых окна.

Один предназначен для родительских объектов (с DGV), а другой - для дочерних объектов (с DGV).

Когда пользователь открывает родительское окно, родительские объекты загружаются построчно в DGV.

Затем, если пользователь дважды щелкнет строку в родительском окне, будет показано дочернее окно, и дочерние объекты этого родителя будут заполнены в DGV в дочернем окне.

Таким образом, вы можете содержать вещи в чистоте независимо от того, насколько глубоки будут отношения между родителями и детьми. Более того, операции добавления, редактирования, удаления и т. Д. Были бы намного чище.

Вы также можете использовать некоторые сторонние элементы управления, такие как, HierarchicalDataGridView .

0 голосов
/ 03 марта 2010

Привязка WinForms не разрешает обход вложенных свойств, хотя такая возможность возможна в WPF.Самым простым решением для WinForms является добавление на верхнем уровне свойства (фактического связываемого типа), представляющего то, что вы хотите связать - уродливо, я знаю.предоставьте PropertyDescriptor, который делает то же самое.Это самое чистое решение в отношении того, что раскрывается вне класса, но это нетривиальный объем работы.

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