访问用于通过DataTable填充DataGridView的对象

时间:2012-06-29 04:54:35

标签: c# events datagridview datatable

我试图在此方法中访问用于填充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
       }
  }
}

以下是使用DataTable

添加到gridview的对象的代码
DataRow row = _loadMembersTable.NewRow();
row["Member Name"] = member.InternalLabel;
row["Type"] = member.MemberType;
_loadMembersTable.Rows.Add(row);
memberDataGridView.DataSource = _loadMembersTable;

在构建DataTable时,如果在selectionChanged中需要它时找回此成员对象,我该怎么办?

1 个答案:

答案 0 :(得分:0)

我不确定我是否理解你的问题。我认为您只是将对象成员属性分配给数据表列,而不是它自己的对象。因此,您无法直接从数据表中获取“member”类型的对象。

如果您在内存中维护了成员集合,则可以针对Member Name列查询数据表,然后搜索内存中维护的成员集合。

或者您可以将新列添加到类型成员的DataTable中,然后将该对象添加到数据表本身。

添加列

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

设置值

row["MemberObj"] = member;