我有一个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。
答案 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