我遇到了将XAML转换为代码隐藏的麻烦。XAML代码隐藏
我有这样的:
<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>
的DataGrid
通过(伪)填充... new Dataview(ds.Tables[mytable]);
现在我试图创建在后面 的代码风格和触发,但我有麻烦与绑定。
我
BrushConverter brushConverter = new BrushConverter();
Style setcolor = new Style();
setcolor.TargetType = typeof(DataGridRow);
DataTrigger setgreen = new DataTrigger();
setgreen.Binding = new Binding("state");
setgreen.Value = true;
setgreen.Setters.Add(new Setter(DataGrid.RowBackgroundProperty, brushConverter.ConvertFromString(Colors.GreenYellow.ToString())));
setcolor.Triggers.Add(setgreen);
-Alas它不工作
您没有设置'setgreen.Binding'。为什么刷转换器?你可以只写'Brushes.GreenYellow'。 – Clemens
不知道刷子 - 虐待做到这一点。谢谢。 - 似乎我把这部分留下了,编辑了这个问题。 – VisualBean
我想你想设置'DataGridRow.BackgroundProperty'而不是'DataGrid.RowBackgroundProperty'。 – Clemens