I have two UltraGrids.
Both UltraGrid can pass rows from one grid to another using Drag & Drop. I need to check that the row doesn't already exist on the destination grid.
This is that I have done:
private void uGrid2_DragEnter(object sender, DragEventArgs e) { if (e.Data.GetDataPresent(typeof(UltraGridRow))) { UltraGridRow row = e.Data.GetData(typeof(UltraGridRow)) as UltraGridRow; if (!uGrid2.Rows.Contains(row)) { e.Effect = DragDropEffects.Copy; } } }
1) Drag a row from the grid1 to GRID2 2) Repeat the same step, with the same row The condition always returns false.
uGrid2.Rows.Contains(row)
always is false...
Why?
Hi,
The Contains method doesn't look at the data in the row. It just looks at the actual instance of the object you pass in. So a row in the first grid will never exist in the second grid, because it will always be a different instance.
So this will work if you try to drag a row from grid1 into grid1. But it will not work for dragging a row to a different grid.
You will probably need to compare the data in the row, perhaps using some key value.
OK, thanks :)