获取与DataGridView中选定行关联的对象

时间:2011-02-23 12:18:07

标签: c# winforms datagridview

我有一个DataGridView绑定到一个对象数组。

List<Node> nodes = GetNodeList();

m_grid.DataSource = nodes;

然后我处理SelectionChanged事件。

在SelectionChanged事件的处理程序中,我想访问所选对象。

我似乎能够做的就是访问网格中每个单元格的值,而不是与该行关联的整个对象。

void OnSelectionChanged( object sender, EventArgs e )
{
    foreach ( DataViewGridRow row in m_grid.SelectedRows )
    {
        /* Here I want to be able to access the Node object associated with this row*/
    }
}

我确信它一定是可能的,但我无法理解。我可以得到行索引,然后回头查看数组,但这看起来有点hacky。

2 个答案:

答案 0 :(得分:3)

试试这个......

DataGridViewSelectedRowCollection rows = MyDataGridView.SelectedRows;
foreach (DataGridViewRow row in rows)
{
   DataRow myRow = (row.DataBoundItem as DataRowView).Row;
   // Do something with your DataRow
}

答案 1 :(得分:2)

从内存中,单元格将是DataGridRowView:

var drv = cell as DataGridRowView;
var row = drv.Row as MyDataRowType;

无论如何,使用调试器查找cell

的类型