2011-02-23 31 views
0

我有一个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*/ 
    } 
} 

我相信它一定是可能的,但我无法弄清楚。我可以得到行索引,然后回头看看数组,但看起来有点哈克。

+2

细胞的类型是一个不好的名字一排 – 2011-02-23 12:22:10

+0

非常真实 - 我会编辑它。 – Nick 2011-02-23 12:26:44

回答

3

尝试......

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

好的,对不起,我直接绑定到一组对象。我会更新代码...! – Nick 2011-02-23 12:22:32

+0

辉煌 - 这就是解决方案。谢谢! – Nick 2011-02-23 12:26:08

2

从内存中,细胞会DataGridRowView:

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

总之,使用调试器来找到cell

相关问题