У меня возникли проблемы с преобразованием XAML в codebehind.XAML to codebehind
У меня есть это:
<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