protected virtual void Command() { lock (_collection.SyncRoot) { try { Cursor.Current = Cursors.WaitCursor; //Ide kerülnek a kiejlölt sorok var selectedRows = new DataGridViewRow[_dataGridView.SelectedRows.Count]; //Kijelölt sorok mentése a selectedRows-ba _dataGridView.SelectedRows.CopyTo(selectedRows, 0); //Ha van kijelölt sor, akkor az első első sor indexe kell. var index = !selectedRows.Any() ? 0 : selectedRows[0].Index; //Eltrölöl minde kijelölés, mivel a beilesztett sor(ok) lesznek kiejlölve. _dataGridView.ClearSelection(); //vágólapon lévő object[] megszerzése. var items = _retviredDataObject.GetData(typeof(object[])); if (items != null) { foreach (var item in (Array)items) { //Az új sor az akutális index alá fog kerülni. AddItemToCollection(++index, item); var newRow = _dataGridView.Rows.Cast <DataGridViewRow>().FirstOrDefault(n => n.DataBoundItem == item); if (newRow != null) { newRow.Selected = true; } } } } finally { Cursor.Current = Cursors.Default; } } }