Drag-and-drop in DevExpress grid

Ich versuche, die Implementierung einer drag-and-drop-Funktion in einem DevExpress-Grid. Die erste Möglichkeit, die ich habe versucht, es hat nicht funktioniert, da die dragdrop Methode ist nicht immer Treffer. Muss ich haben, es ausgelöst durch die mouseDown event, oder wie gehe ich über das tun dies. Beispiele wären sehr willkommen. Was ich versucht habe, so weit ist diese:

private void gridFields_DragDrop(object sender, DragEventArgs e)
{
    GridControl grid = sender as GridControl;
    GridView view = grid.MainView as GridView;
    GridHitInfo srcHitInfo = e.Data.GetData(typeof(GridHitInfo)) as GridHitInfo;
    GridHitInfo hitInfo = view.CalcHitInfo(grid.PointToClient(new Point(e.X, e.Y)));
    int sourceRow = srcHitInfo.RowHandle;
    int targetRow = hitInfo.RowHandle;
    MoveRow(sourceRow, targetRow);
}

private void MoveRow(int sourceRow, int targetRow)
{
    if (sourceRow == targetRow || sourceRow == targetRow + 1)
        return;

    GridView view = gridFieldView;
    DataRow row1 = view.GetDataRow(targetRow);
    DataRow row2 = view.GetDataRow(targetRow + 1);
    DataRow dragRow = view.GetDataRow(sourceRow);
    decimal val1 = (decimal)row1[OrderFieldName];
    if (row2 == null)
        dragRow[OrderFieldName] = val1 + 1;
    else
    {
        decimal val2 = (decimal)row2[OrderFieldName];
        dragRow[OrderFieldName] = (val1 + val2) / 2;
    }
}
  • Haben Sie schaute auf die DevExpress-support-Website? Wenn Sie Fragen würde, die DevExpress support, werden Sie schnell sagen.
  • Traurige Teil von Devexpress support, Sie helfen Ihnen nur, wenn Sie die devexpress-Lizenz.
InformationsquelleAutor Sean Smyth | 2012-12-14
Schreibe einen Kommentar