2011-06-15 14 views
12

Tengo una DataGrid (llamada TheGrid) en la que me gustaría implementar la funcionalidad de copiar y pegar. La funcionalidad de copia funciona muy bien, pero no sé cómo implementar pegar. ¿Solo necesito obtener los datos del portapapeles y analizarlos?Pegar desde Excel a WPF DataGrid

Los enlaces de comando:

<Window.CommandBindings> 
    <CommandBinding Command="Copy" Executed="CommandBinding_Executed" CanExecute="CommandBinding_CanExecute" /> 
    <CommandBinding Command="Paste" Executed="CommandBinding_Executed" CanExecute="CommandBinding_CanExecute" /> 
</Window.CommandBindings> 

Los elementos del menú:

<MenuItem Header="{x:Static culture:TextResource.CopyMenuItem}" Command="Copy"/> 
<MenuItem Header="{x:Static culture:TextResource.PasteMenuItem}" Command="Paste"/> 

el código detrás de CommandBinding_Executed:

private void CommandBinding_Executed(object sender, ExecutedRoutedEventArgs e) 
{ 
    if(e.Command.Equals(ApplicationCommands.Copy)) 
    { 
     // This works great, wow that was easy! 
     ApplicationCommands.Copy.Execute(null, TheGrid); 
    } 
    else if (e.Command.Equals(ApplicationCommands.Paste)) 
    { 
     //What do I do here? Is there an easy way to paste like there was for copy? 
     // Or do I need to grab data using Clipboard.GetData and parse it myself? 
    } 
} 

Respuesta

8

No es fácil de hacer
Usted debe analizar portapapeles datos con ClipboardHelper
eche un vistazo a this question

+0

Tal vez me falta algo, pero ¿en qué espacio de nombres se encuentra ClipboardHelper? No puedo compilar y estoy obteniendo el garabato rojo perty: -/ – KrisTrip

+0

mira el enlace en mi respuesta –

+0

oops, no leí lo suficiente ... gracias :) – KrisTrip