.net DataGridView复杂绑定
我想绑定DataGridView中的列,以从两个不同的类中提取值。我的应用程序是WinForms 我的数据结构如下:.net DataGridView复杂绑定,.net,winforms,datagridview,.net,Winforms,Datagridview,我想绑定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 Class ADisplay private A target public ADisplay(A t
Class A
Number As Integer
Items as List(Of Class B)
End Class
Class B
Number as Integer
Value as Double
End Class
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
...
我需要能够在DataGridView中显示它,第一列是.Number,后续列是Items列表中的每个项目
Items
1 1-1.5 2-2.0 3-3.6
2 1-1.0 2-3.9 3-4.2
.
.
.
到目前为止,我得到的唯一一个在短时间内似乎可行的建议是将其转换为datatable并绑定,但这看起来非常难看
谢谢你的帮助 有几次,我有一个数据网格,我想从几个不同的地方提取列。我发现的最简单的技术是创建一个显示类,它只是一组用于导航某个对象模型的getter方法。然后我绑定到该显示类 在本例中,您必须执行以下操作:
Class A
Number As Integer
Items as List(Of Class B)
End Class
Class B
Number as Integer
Value as Double
End Class
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已经生锈了,但我希望它足够清晰,让您明白这一点。好几次,我有一个数据网格,我想从几个不同的地方提取列。我发现的最简单的技术是创建一个显示类,它只是一组用于导航某个对象模型的getter方法。然后我绑定到该显示类 在本例中,您必须执行以下操作:
Class A
Number As Integer
Items as List(Of Class B)
End Class
Class B
Number as Integer
Value as Double
End Class
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已经生锈了,但我希望它足够清晰,让您明白这一点。如果您需要使用datagrid执行非常复杂(可能很奇怪)的操作,那么您可以使用作为控件。它非常灵活,允许您使用网格做几乎所有事情。如果您需要使用datagrid做非常复杂(可能很奇怪)的事情,那么您可以使用作为控件。它非常灵活,允许您使用grid做几乎所有事情。您可以使用LINQ吗?您可以使用selectmany/grouping运算符,然后将其展平为列表。您仍然会手动创建/编辑列。您可以使用LINQ吗?您可以使用selectmany/grouping运算符,然后将其展平为列表。您仍然需要手动创建/编辑列。