2012-04-28 20 views
5

Tôi cần tạo một DataGridTemplateColumn phổ biến, để tôi có thể sử dụng nó trên ứng dụng của mình với các đối tượng và thuộc tính khác nhau.Tạo dữ liệu chungGridTemplateColumn trong WPF

đây là một số mẫu mã, tôi sử dụng trong dự án của tôi

<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> 

Tôi cần một phiên bản generic của mã để tôi có thể đặt DataTemplate trong app.xaml và tham khảo nó trong mã của tôi

+0

có thể trùng lặp của [Tôi có thể xác định CellTemplate của DataGrid như một nguồn để nó có thể được tái sử dụng trong nhiều cột?] (http://stackoverflow.com/questions/8354650/can-i-define-celltemplate-of-datagrid-as-a-resource-so-that-it-can-be-reused-in) – Athafoud

Trả lời

6

Bạn không thể trực tiếp mẫu DataGridTemplateColumn. Nhưng may mắn thay bạn có thể sử dụng các mẫu chung cho ô. Hãy xem ví dụ:

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> 

Sử dụng

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