0

このメソッドで DataGridview を埋めるために使用されるオブジェクトにアクセスしようとしています:

void memberDataGridView_SelectionChanged(object sender, EventArgs e)
{
  foreach (DataGridViewCell cell in memberDataGridView.SelectedCells)
  {
    foreach (DataGridViewRow row in memberDataGridView.Rows)
    {
       if (row.Cells.Contains(cell))
       {
          //here is where I want to access the object that was used to build this row.
          //it will be added as a comboboxitem
       }
  }
}

これは、データテーブルを使用してグリッドビューに追加されているオブジェクトのコードです

DataRow row = _loadMembersTable.NewRow();
row["Member Name"] = member.InternalLabel;
row["Type"] = member.MemberType;
_loadMembersTable.Rows.Add(row);
memberDataGridView.DataSource = _loadMembersTable;

selectionChanged で必要なときに、このメンバー オブジェクトを見つけるために DataTable を作成するときに何ができますか?

4

1 に答える 1

0

あなたの質問を正しく理解できたかどうかわかりません。オブジェクト自体ではなく、データテーブルの列にオブジェクトメンバープロパティを割り当てているだけだと思います。したがって、タイプ「メンバー」のオブジェクトをデータ テーブルから直接取得することはできません。

メモリに保持されているメンバーのコレクションがある場合は、Member Name列に対してデータテーブルをクエリし、メモリに保持されているメンバーのコレクションを取得して検索できます。

または、メンバー型の DataTable に新しい列を追加してから、オブジェクトをデータテーブル自体に追加することもできます。

列を追加するには

_loadMemebersTable.Columns.Add("MemberObj",typeof(Member));

値を設定するには

row["MemberObj"] = member;
于 2012-06-29T05:04:45.617 に答える