2010-03-02 30 views
3

我有一个包含子产品对象的productVariant对象。我想在DataGridView中显示值,任何人都可以让我知道如何做到这一点?Windows窗体:在DataGridView中显示子对象值

这里是对象的结构。

alt text

我试图“ProductVariant.Product.Name”绑定到DataProptertyName在DataGridView,但是,它并没有不显示任何值。

任何人都可以帮忙吗?非常感谢。

回答

0

DataGridView控件无法自动绑定子对象。

如果你正在使用Win-forms,我的建议是创建两个对话窗口。

一个用于父对象(带有DGV),另一个用于子对象(带有DGV)。

当用户打开父窗口时,父对象将在DGV中逐行加载。

然后,如果用户双击父窗口上的一行,子窗口将显示出来,并且该父窗口的子对象将填充到子窗口上的DGV上。

通过这种方式,无论亲子关系多深,您都可以保持干净。而且,添加,编辑,删除等操作会更清洁。

您还可以使用一些第三方控件,如HierarchicalDataGridView

0

WinForms绑定不允许遍历嵌套属性,尽管WPF中可能会有这种情况。对于WinForms最简单的解决方案是在顶层(绑定的实际类型)添加一个属性,该属性表示要绑定的内容 - 丑陋,我知道。

您可以实施自定义TypeDescriptor并提供执行相同操作的PropertyDescriptor。就班级以外的情况而言,这是最干净的解决方案,但这是一项不重要的工作。

相关问题