您可以使用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。
非常感謝 – Timur 2010-09-20 17:01:22