2012-04-28 16 views
5

Necesito crear un DataGridTemplateColumn común, para que pueda usarlo en mi aplicación con diferentes objetos y propiedades.Crear CommonGridTemplateColumn en WPF

aquí es un código de ejemplo, yo uso en mi proyecto

<DataGridTemplateColumn Width="100*"> 
    <DataGridTemplateColumn.CellTemplate> 
     <DataTemplate> 
      <TextBlock Text="{Binding Path=Age}"/> 
     </DataTemplate> 
    </DataGridTemplateColumn.CellTemplate> 
    <DataGridTemplateColumn.CellEditingTemplate> 
     <DataTemplate> 
      <TextBox Text="{Binding Path=Age}"/> 
     </DataTemplate> 
    </DataGridTemplateColumn.CellEditingTemplate> 
</DataGridTemplateColumn> 

necesito una versión genérica del código para que pueda colocar el DataTemplate en app.xaml y hacer referencia a ella en mi código

+0

duplicado posible de [¿Puedo definir CellTemplate de cuadrícula de datos como recurso para que pueda ser reutilizado en varias columnas?] (http://stackoverflow.com/questions/8354650/can-i-define-celltemplate-of-datagrid-as-a-resource-so-that-it-can-be-reused-in) – Athafoud

Respuesta

6

Usted no puede plantilla DataGridTemplateColumn directamente. Pero afortunadamente puede usar plantillas globales para celdas. Echar un vistazo a ejemplo:

App.xaml

<Application.Resources> 

    <DataTemplate x:Key="CellEdintingTemplate"> 
     <TextBox Text="{Binding Path=Age}" /> 
    </DataTemplate> 
    <DataTemplate x:Key="CellTemplate"> 
     <TextBlock Text="{Binding Path=Age}" /> 
    </DataTemplate> 

</Application.Resources> 

Usando

<DataGrid> 
     <DataGrid.Columns> 
      <DataGridTemplateColumn 
       CellEditingTemplate="{StaticResource CellEdintingTemplate}" 
       CellTemplate="{StaticResource CellTemplate}" /> 
     </DataGrid.Columns> 
    </DataGrid> 
Cuestiones relacionadas