2010-03-02 6 views
3

하위 제품 개체가있는 productVariant 개체가 있습니다. DataGridView에서 값을 보여주고 싶습니다. 아무에게도이 작업을 수행하는 방법을 알려 줄 수 있습니까?Windows Form : DataGridView에서 하위 개체 값 표시

다음은 개체의 구조입니다.

alt text

나는 모든 값이 표시되지 않았다, 그러나 DataGridView에있는 DataProptertyName에 "ProductVariant.Product.Name"를 결합하려고 노력했다.

아무도 도와 드릴 수 있습니까? 많은 감사합니다.

답변

0

DataGridView- 컨트롤은 자식 개체를 자동으로 바인딩 할 수 없습니다.

Win-forms로 작업하는 경우 두 개의 대화 상자 창을 만드는 것이 좋습니다.

하나는 부모 개체 (DGV 포함) 용이고 다른 하나는 자식 개체 (DGV 사용) 용입니다.

사용자가 부모 창을 열면 상위 개체가 DGV에서 행 단위로로드됩니다.

그런 다음 사용자가 부모 창에서 행을 두 번 클릭하면 자식 창이 표시되고 해당 부모의 자식 개체가 자식 창의 DGV에 채워집니다.

이렇게하면 부모 - 자식 관계가 얼마나 깊은 지 상관없이 깨끗하게 유지할 수 있습니다. 또한, 추가, 편집, 삭제 등의 작업은 훨씬 더 깨끗합니다.

HierarchicalDataGridView과 같은 타사 컨트롤을 사용할 수도 있습니다.

0

WinForms 바인딩은 중첩 된 속성을 트래버스 할 수 없지만 WPF에서는 가능합니다. WinForms의 가장 쉬운 솔루션은 바인딩하려는 것을 나타내는 최상위 수준 (바인딩되는 실제 유형)에 속성을 추가하는 것입니다.

사용자 정의 TypeDescriptor을 구현하고 동일한 작업을 수행하는 PropertyDescriptor을 제공 할 수 있습니다. 이것은 수업 외부에 노출되는 것까지 가장 깨끗한 해결책이지만, 사소한 작업은 아닙니다.