none
Problem mit Überschreiben des Cut-Copy-Paste Verhalten im WPF DataGrid RRS feed

  • Frage

  • Hallo,

    Ich benutze ein WPF-DataGrid (das von Microsoft) und habe dabei das Copy-Cut-Paste Verhalten meines Forms mit eigenen Befehlen überarbeitet, so dass ganze Zeilen ausgeschnitten, kopiert und eingefügt werden können. Es ist Codeseitig im Loaded-Event so gemacht (Preview da sonst Aufruf nie erfolgt):

    var bCopy = new CommandBinding(ApplicationCommands.Copy, CopyExecute, CanExecuteCopy);
    bCopy.PreviewCanExecute += CanExecuteCopy; bCopy.PreviewExecuted += CopyExecuted; CommandBindings.Add(bCopy);

    Die Befehle sind an das Contextmenü des DataGrid gebunden.

    <DataGrid.ContextMenu>
          <ContextMenu>
             <MenuItem x:Name="contextMenuItemCopy" Header="Kopieren" Command="Copy" />
          </ContextMenu>
    </DataGrid.ContextMenu>
    

    Jetzt habe ich jedoch das Problem, dass wenn ich in einer Zelle einen Teil des Textes selektiere und diesen Kopieren will, wird immer die ganze Zeile kopiert anstelle des selektierten Textes, was ja eigentlich auch logisch ist, da ich dieses Verhalten überschrieben habe. Ich frage mich nun, ob es einen Weg gibt, diese Problematik zu umgehen und beispielsweise je nach Zustand den Copy-Befehl direkt auf die unter der Zelle liegende TextBox (welche ja auch die OriginalSource ist) zu übertragen?

    Vielen Dank im Vorraus

    Daniel


    • Bearbeitet DaN.6 Dienstag, 13. September 2011 08:20
    Dienstag, 13. September 2011 08:07

Alle Antworten

  • Hast du mal getestet, ob die Umstellung der SelectionUnit Eigenschaft auf Cell was bringt?

    http://msdn.microsoft.com/en-us/library/system.windows.controls.datagrid.selectionunit.aspx

     

    Donnerstag, 15. September 2011 15:47
    Beantworter
  • Ja, dass tut auch nichts und wäre für meine Lösung eh keine Option, da ich in der Lage sein muss mehrere Zeilen über den RowHeader zu selektieren. Ich habe temporär halt eigene Command eingebaut ohne die gängigen Shortcuts CTRL+X/C/V zu verwenden, so muss man halt immer über das ContextMenü gehen um Zeilen zu kopieren, auszuschneiden und einzufügen...Sicher nicht ideal, aber solange nichts besseres in Aussicht ist, denke ich, dass dies wohl die beste Variante ist.

    Gruss Daniel

    Freitag, 16. September 2011 08:54