Wpf XAML到代码隐藏
我在将XAML转换为codebehind时遇到问题 我有这个:Wpf XAML到代码隐藏,wpf,xaml,styles,code-behind,datatrigger,Wpf,Xaml,Styles,Code Behind,Datatrigger,我在将XAML转换为codebehind时遇到问题 我有这个: <DataGrid.RowStyle> <Style TargetType="DataGridRow"> <Style.Triggers> <DataTrigger Binding="{Binding state}" Value="True"> <Setter Property="Background" Value="G
<DataGrid.RowStyle>
<Style TargetType="DataGridRow">
<Style.Triggers>
<DataTrigger Binding="{Binding state}" Value="True">
<Setter Property="Background" Value="GreenYellow"/>
</DataTrigger>
<DataTrigger Binding="{Binding state}" Value="False">
<Setter Property="Background" Value="Red"/>
</DataTrigger>
</Style.Triggers>
</Style>
</DataGrid.RowStyle>
-遗憾的是,它不起作用您需要更改Setter的
属性
值
DataGrid.RowBackgroundProperty
到
或同等品
Control.BackgroundProperty.
我建议在XAML中构建
样式
本身,然后在需要时在代码中提取它。例如,如果一切都发生在用户控件中
:
<UserControl x:Class=...
...
>
<UserControl.Resources>
<Style x:Key="MyRowStyle" TargetType="DataGridRow">
<Style.Triggers>
<DataTrigger Binding="{Binding state}" Value="True">
<Setter Property="Background" Value="GreenYellow"/>
</DataTrigger>
<DataTrigger Binding="{Binding state}" Value="False">
<Setter Property="Background" Value="Red"/>
</DataTrigger>
</Style.Triggers>
</Style>
</UserControl.Resources>
<!-- Your content here.. -->
您尚未将
设置为绿色。绑定
。为什么要使用电刷转换器?你可以只写画笔。绿黄色的。我不知道画笔的事,我会写的。谢谢我似乎忽略了这一部分,编辑了这个问题。我想你应该设置DataGridRow.BackgroundProperty
而不是DataGrid.RowBackgroundProperty
。成功了这是一个奇迹:)
Control.BackgroundProperty.
<UserControl x:Class=...
...
>
<UserControl.Resources>
<Style x:Key="MyRowStyle" TargetType="DataGridRow">
<Style.Triggers>
<DataTrigger Binding="{Binding state}" Value="True">
<Setter Property="Background" Value="GreenYellow"/>
</DataTrigger>
<DataTrigger Binding="{Binding state}" Value="False">
<Setter Property="Background" Value="Red"/>
</DataTrigger>
</Style.Triggers>
</Style>
</UserControl.Resources>
<!-- Your content here.. -->
var newGrid = new Dataview(ds.Tables[mytable]);
newGrid.RowStyle = this.Resources["MyRowStyle"] as Style;