datagridview winform标记仅返回第一行值

时间:2009-09-03 19:27:21

标签: vb.net winforms datagridview tags

我正在使用visual studio 2008.

我在winform中有一个datagridview。我已经使用对象绑定了它

 Private Sub LoadAllCampers()
    Dim Os As List(Of LE.Camper) = Nothing
    Dim Oc As New LE.Camper_Controller
    Os = Oc.GetCamperData(0)

    With Me.dgResults
        .DataSource = Os
    End With
    CamperBindingSource.DataSource = Os
End Sub

我在Camper类的ID属性上设置了标记。当我双击数据网格视图中的一行时,我会执行me.dgResults.tag并始终显示第一行ID值。如果我更改了类中的顺序,它将显示不同的值,但它始终是datagridview中的第一个值。

我遗漏了一些简单的工作......只是不知道它是什么。 希望有人能浪费一分钟。

2 个答案:

答案 0 :(得分:0)

该行:

Os = Oc.GetCamperData(0)

对我来说有点怀疑。

我已经有一段时间了,因为我已经完成了任何VB.NET,但看起来它正在获取数组/列表对象的第一个索引。

将网格视图的DataSource绑定到数据的其余代码看起来没问题。

答案 1 :(得分:0)

  

“我做了一个me.dgResults.tag”

你的意思是你做这样的事情?

Dim value As Object = Me.dgResults.Tag

DataGridView的tag属性只是附加到datagridview的单个信息,而不是特定的行。

DataGridView的每一行都有一个Tag属性。假设您想要在索引 rowIndex 中获取行的标记,您可以这样做:

Dim value As Object = Me.dgResults.Rows(rowIndex).Tag

...但我不知道你为什么要使用标签。由于您使用数据绑定,您可以将对象绑定到DataGridView的行,并访问它的属性,如下所示:

Dim row as DataGridViewRow = Me.dgResults.Rows(rowIndex)
Dim camper as LE.Camper = CType(row.DataBoundItem, LE.Camper)
Dim camperId = camper.Id