2010-09-18 23 views

回答

2

您可以使用DataGridTemplateColumn。我假設你想在xaml中設置一個默認模板並在代碼中稍後覆蓋它。在這裏,我將其設置爲MyDefaultTemplate,應在控制的資源,你的AnalogTemplate一起定義:

<DataGrid AutoGenerateColumns="False" Height="200" Name="dataGrid1" Width="200"> 
     <DataGrid.Columns> 
      <DataGridTemplateColumn x:Name="myColumn" CellTemplate="{StaticResource MyDefaultTemplate}"/>     
     </DataGrid.Columns> 
    </DataGrid> 

然後你就可以很容易地改變它的代碼:

myColunm.CellTemplate = (DataTemplate) FindResource("AnalogTemplate"); 

在代碼中,你應該做任何事情之前,問問自己,你是否可以用純xaml來代替它,通常你可以。同時檢查出CellTemplateSelector和CellEditingTemplateSelector。

請注意,DataGrid使用兩個模板。一個用於顯示不可編輯的內容(CellTemplate),另一個用於可編輯的內容(CellEditingTemplate)。 見DataGridTemplateColumn at MSDN

+0

非常感謝 – Timur 2010-09-20 17:01:22

相關問題