2009-09-03 6 views
0

私はVisual Studio 2008を使用しています。datagridview winformタグは、最初の行の値を返すだけです

私は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プロパティにタグを設定しました。私はdatagridviewの行をダブルクリックすると、私はme.dgResults.tagを行い、常に最初の行のID値を表示します。クラス内の順序を変更すると、別の値が表示されますが、常にdatagridviewの最初の値になります。

私はこれを得るために簡単な何かが欠けている..それは何か分かりません。 うまくいけば誰かが分を惜しまないことができます。

答えて

0

ライン:

Os = Oc.GetCamperData(0) 

は私には少し容疑者を探します。

私はVB.NETをやったのでしばらくありますが、それは配列/リストオブジェクトの最初のインデックスを取得しているようです。

グリッドビューのデータソースをデータにバインドしている残りの部分は問題ありません。

+0

:あなたはデータバインディングを使用するので、あなたはDataGridViewのの列にバインドされたオブジェクト、およびアクセスを得ることができ、それはこのような性質ですCamperId ")...これは、データを呼び出すときに"タグ "を使用できるようにするために必要なバインディングを追加します。そうしなければ、行(。rowindex)を使用する可能性があります。 ありがとうございます – jvcoach23

0

あなたはこのような何かを意味 "私がme.dgResults.tagを行いますか"?

Dim value As Object = Me.dgResults.Tag 

DataGridViewのタグプロパティは、特定の行ではなく、一般的なDataGridviewに付加される単なる情報です。

DataGridViewの各行には、Tagプロパティもあります。あなたはこのようにそれを行うことができ、あなたはrowIndexにインデックスで行のタグを取得したいとしましょう:

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

...しかし、私はあなたがタグを使用する理由はわかりません。私は答え.. dgResults.DataBindings.Add(「タグ」、Oを、「見つけ

Dim row as DataGridViewRow = Me.dgResults.Rows(rowIndex) 
Dim camper as LE.Camper = CType(row.DataBoundItem, LE.Camper) 
Dim camperId = camper.Id 
関連する問題