2010-08-13 21 views
8

Con Silverlight 4, puedo seleccionar una o más celdas (o filas y columnas) en un DataGrid, presionar Control + C y los contenidos se copian en el portapapeles. Lo cual es realmente genial. Después de Control + V, se puede pegar en Excel o en algún otro editor.¿Cómo puedo copiar el contenido seleccionado de todas las celdas en un DataGrid (incluyendo DataGridTemplateColumn) con Silverlight 4?

Sin embargo, si una de las columnas es una DataGridTemplateColumn, sus valores están en blanco cuando se pegan. Lo cual tiene sentido, porque podría ser cualquier cosa en la columna.

¿Cómo puedo decirle al Control + C que copie cuál debería ser el valor de la celda de la plantilla?

Respuesta

13

Resulta que esto es realmente fácil si está utilizando el enlace de datos. Todo lo que tiene que hacer es enlazar la propiedad

ClipboardContentBinding
con el valor que desea copiar para esta columna.

Por ejemplo:

<data:DataGridTemplateColumn Header="Name" ClipboardContentBinding="{Binding Name}" SortMemberPath="Name"> 
    <data:DataGridTemplateColumn.CellTemplate> 
    <DataTemplate> 
     <HyperlinkButton Content="{Binding Name}" Margin="3" /> 
    </DataTemplate> 
    </data:DataGridTemplateColumn.CellTemplate> 
</data:DataGridTemplateColumn> 
Cuestiones relacionadas