2012-09-17 45 views
0

我想在代碼中設置的風格,但一直未能如願,Style代碼中的CustomWpfDataGrid?

在XAML

<Style x:Key="DataGridStyle1" TargetType="{x:Type DataGrid}"> 
    <Setter Property="Template" Value="{DynamicResource DataGridControlTemplate1}"/> 
</Style> 

<Style x:Key="DataGridStyle2" TargetType="{x:Type DataGrid}"> 
    <Setter Property="Background" Value="AntiqueWhite"/> 
</Style> 

這是CustomControl:

public class CustomDataGrids : DataGrid 
{ 
    public CustomDataGrids() 
    { 
     ResourceDictionary res = Application.LoadComponent(new Uri("CustomDataGridStyle.xaml", UriKind.Relative)) as ResourceDictionary; 
     this.Style = (Style)res["DataGridStyle1"]; 
     this.ColumnHeaderStyle = (Style)res["ColumnHeaderStyle1"]; 
    } 
} 

當風格= DataGridStyle2它的作品完美,但是當Style = DataGridStyle1時,它不工作,有什麼想法?

+0

兩個模板是不同的。最好在DataGridStyle1中設置背景,然後檢查。 –

+0

也許模板的'DataGridControlTemplate1'鍵存在問題。你能發佈該模板的代碼嗎? – 2012-09-17 10:38:40

+0

感謝您的關注,我明白,問題是DataGridControlTemplate1,當我設置模板,而不是樣式,它工作完美:'this.Template =(Style)res [「DataGridControlTemplate1」];',但我不明白爲什麼?! –

回答

0

我想這個問題是模板,所以我不得不這樣做:

This.Template=(System.Windows.Controls.ControlTemplate)res["DataGridControlTemplate1"];