我想绑定DataGridView中的列以从两个不同的类中提取值。我的应用程序是在WinForms中。
我有这样的数据结构:
Class A
Number As Integer
Items as List(Of Class B)
End Class
Class B
Number as Integer
Value as Double
End Class
我需要能够在DataGridView中显示它,第一列是A.Number,后续列是Items列表中的每个项目。
Items
1 1-1.5 2-2.0 3-3.6
2 1-1.0 2-3.9 3-4.2
.
.
.
到目前为止我唯一可以在短时间内使用的建议是将其转换为数据表并将其绑定,但这看起来非常难看。
感谢您的帮助!
答案 0 :(得分:1)
有几次,我有一个数据网格,我想从几个不同的地方拉出列。我发现最简单的技术是创建一个显示类,它只是一组用于导航某些对象模型的getter方法。然后我绑定到那个显示类。
在这个例子中,你必须做这样的事情:
Class ADisplay
private A target
public ADisplay(A target)
Me.target = target
End
public property Number
return target.Number
End
public property Item0
return FormatItem(0)
End
public property Item1
return FormatItem(1)
End
...
private Function FormatItem(i as Integer) As String
B item = target.Items(i)
' Now format that item
...
抱歉,我的VB.NET非常生疏,但我希望你能够明白这一点。
答案 1 :(得分:0)
如果您需要使用datagrid执行非常复杂(可能很奇怪)的事情,那么您可以使用 SourceGrid 作为控件。它非常灵活,它允许你用网格做几乎所有事情。