2012-12-14 19 views
9

per WPF, griglia di dati Sto cercando di copiare negli appunti i miei dati di testo personalizzate, dopo Ctrl+C tentativi Diverse da usare di override OnCopyingRowClipboardContent(DataGridRowClipboardEventArgs args) o CopingRowClipboardContent event, non aiutano.WPF DataGrid, Copia negli Appunti dopo Ctrl + C, OnCopyingRowClipboardContent

Entrambi gli appunti diventano vuoti o il testo di riga standard, ma non quello che mi piacerebbe inserire. Per esempio

protected override void OnCopyingRowClipboardContent(DataGridRowClipboardEventArgs args) 
{ 
    Clipboard.SetText("Abc-hello"); 
    bool b1 = Clipboard.ContainsText(); 
    string s1 = Clipboard.GetText(); 
} 

s1 ottiene testo desiderato, ma dopo uscire da questo metodo clipboard ottiene vuoto. Qualche idea se si può risolvere questo?

risposta

3

È necessario impostare la proprietà ClipboardRowContent di DataGridRowClipboardEventArgs

static void dataGrid_CopyingRowClipboardContent(object sender, DataGridRowClipboardEventArgs e) 
{ 
    e.ClipboardRowContent.Clear(); 
    e.ClipboardRowContent.Add(new DataGridClipboardCellContent(e.Item, (sender as DataGrid).Columns[0], "Abc-hello")); 
} 
9

il modo corretto è aggiungere su griglia XAML questa proprietà

ClipboardCopyMode="ExcludeHeader" 

e per ogni proprietà che si desidera copiare aggiungere questo XAML

<DataGridTemplateColumn ClipboardContentBinding="{Binding XXXXXX} ..... 

altro passaggio facoltativo è implementare l'evento dataGrid CopyingRowClipboardContent per modificare i dati del clipoard

Problemi correlati