Получить объект, связанный с выбранными строками в DataGridView - PullRequest
0 голосов
/ 23 февраля 2011

У меня есть 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 ]

3 голосов
/ 23 февраля 2011

Попробуйте это ...

DataGridViewSelectedRowCollection rows = MyDataGridView.SelectedRows;
foreach (DataGridViewRow row in rows)
{
   DataRow myRow = (row.DataBoundItem as DataRowView).Row;
   // Do something with your DataRow
}
2 голосов
/ 23 февраля 2011

Из памяти ячейкой будет DataGridRowView:

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

В любом случае, используйте отладчик, чтобы найти тип cell

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...