Получить коллекцию всех ядер DataRows, соответствующих выбранным строкам DataGridView - PullRequest
1 голос
/ 02 декабря 2009

Есть ли прямой способ сделать это или мне нужно перебрать DataGridView.SelectedRows, а затем получить доступ к DataGridViewRow.DataBoundItem для каждой строки, чтобы создать ее?

Ответы [ 2 ]

3 голосов
/ 02 декабря 2009

DataGridView не предоставляет SelectedDataRows и SelectedRows без поддержки Linq, поэтому да, вам придется написать цикл foreach.

0 голосов
/ 05 мая 2011

Универсальный метод расширения для добавления «SelectedDataRows» в DataGridViews:

public static T[] SelectedDataRows<T>(this DataGridView dg) where T : DataRow
{
    T[] rows = new T[dg.SelectedRows.Count];
    for (int i = 0; i < dg.SelectedRows.Count; i++)
        rows[i] = (T)((DataRowView)dg.SelectedRows[i].DataBoundItem).Row;

    return rows;
}

Это универсально, так что вы можете вернуть типизированную строку данных, используя Типизированные наборы данных. Вы можете сделать свой просто вернуть DataRow[], если хотите. Это также предполагает, что к вашему DataGridView привязано DataView.

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