1

我想在 WPF 中更改 DataGrid 的 RowHeader 的背景。我将样式设置为静态资源,并希望在 C# 中添加样式。下面是 XAML/C# 中的代码。

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'类型的构造函数的调用引发了异常。

请帮忙

4

2 回答 2

0

解决了。应该使用 Resources["x:Key"]。

于 2013-04-03T20:56:12.723 回答
0

你在哪里运行这段代码?它在构造函数内部吗?如果是,则在加载窗口时尝试执行此操作:

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

也许是窗口尚未加载。希望能帮助到你...

于 2013-04-03T20:27:21.170 回答