Как переместить строку из одного DataGridView в другой DataGridView? - PullRequest
2 голосов
/ 18 февраля 2011

У меня есть два DataGridView, которые имеют одну и ту же схему столбцов (хотя два разных DataView как DataSource - если это имеет значение). Каков наилучший / самый быстрый способ перемещения строки из одного представления данных в другое?

Ответы [ 2 ]

1 голос
/ 22 февраля 2011

Несмотря на то, что у меня есть две DataTable в качестве привязки для моих DataGridViews, я не мог найти способ использовать DataGridView, чтобы получить выбранные строки и переместить их, что является требованием для моего приложения.

GridUtility.cs

    /// <summary>
    /// Gets a list of the DataRow objects that are the datasources for a DataGridViews selected rows
    /// </summary>
    /// <param name="rows"></param>
    /// <returns></returns>
    public static DataRow[] GetSelectedDataRows(DataGridView grid)
    {   
        DataRow[] dRows = new DataRow[grid.SelectedRows.Count];
        for (int i = 0; i < grid.SelectedRows.Count; i++)
            dRows[i] = ((DataRowView)grid.SelectedRows[i].DataBoundItem).Row;

        return dRows;  
    }

    /// <summary>
    /// move row from one grid to another
    /// </summary>
    public void MoveRows(DataTable src, DataTable dest, DataRow[] rows)
    {
        foreach (DataRow row in rows)
        {   
            // add to dest
            dest.Rows.Add(row.ItemArray);

            // remove from src
            src.Rows.Remove(row);
        }
    }

Для использования:

GridUtility.MoveRows(fromTable, toTable, 
    GridUtility.GetSelectedDataRows(fromDataGridView));
1 голос
/ 18 февраля 2011

Я считаю, что если у вас есть строка в DataTable table1 и вы хотите добавить ее в DataTable table2, вы можете сделать что-то вроде этого:

table2.Rows.Add(row.ItemArray);

тогда вы также должны удалить строку следующим образом:

table1.Rows.Delete(row);

это просто псевдокод, но он должен работать, я делал это раньше.

конечно, это работает, только если обе таблицы имеют одну и ту же схему, как вы упомянули.

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