2013-04-03 150 views
1

我想更改WPF中DataGrid的RowHeader的背景。我做了一個靜態資源的風格,並希望在C#中添加樣式。以下是XAML/C#中的代碼。更改DataGridRowHeaderStyle(背景)?

XAML:

<Window x:Class="GUI.MainWindow" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    Title="MainWindow" Height="350" Width="525"> 
<Window.Resources> 
    <Style x:Name="newRowHeader" TargetType="{x:Type DataGridRowHeader}"> 
     <Setter Property="Background" Value="White" /> 
    </Style> 
</Window.Resources> 
<Grid Name="MainGrid"> 
</Grid> 

C#:

System.Windows.Controls.DataGrid dg = new System.Windows.Controls.DataGrid(); 
dg.RowHeaderStyle = (Style)FindResource("newRowHeader"); 

在C#dg.RowHeaderStyle的最後一行時出現錯誤....。錯誤:'在類型'GUI.MainWindow'上匹配指定的綁定約束的構造函數的調用拋出異常。

請幫忙

回答

0

你在哪裏運行這段代碼?它在構造函數裏面?如果是,則嘗試在窗口加載時執行此操作:

public MainWindow(){ 
    //... 
    Loaded+=(_,e)=>{ 
     System.Windows.Controls.DataGrid dg = new System.Windows.Controls.DataGrid(); 
     dg.RowHeaderStyle = (Style)FindResource("newRowHeader"); 
    }; 
} 

也許是窗口尚未加載。希望它有幫助...

0

解決了它。應該使用資源[「x:Key」]。