2012-04-29 2 views
0

Я хочу связать весь фон строки с булевым свойством для каждой записи в XAML.Изменить весь фон строки в DataGrid

Есть слишком много способов изменить стиль DataGrid, но я хочу, чтобы изменить конкретный стиль, который отвечает за весь ряд ...

Например, класс Record является связанными данными позади него и DataGrid имеет логическое свойство «Правильно» (true/false), мне бы хотелось, чтобы datagrid показывал строку с ложным правилом на красном фоне, зеленым, когда true.

Я попытался использовать CellStyle, но он меняет только фон в каждой ячейке строки, а не всю строку.

+0

Используйте [DataGrid.RowStyle] (http://msdn.microsoft.com/en-us/library/system.windows.controls.datagrid .rowstyle.aspx). – LPL

+0

Я установил этот сеттер , и это не изменило вещь –

ответ

2

Как уже упоминалось использование DataGrid.RowStyle, например:

<Style x:Key="DataGridRowCorrectStyle" TargetType="{x:Type Toolkit:DataGridRow}"> 
    <Setter Property="Background" Value="Green"/> 
    <Style.Triggers> 
     <DataTrigger Binding="{Binding Correct}" Value="False"> 
      <Setter Property="Background" Value="Red"/> 
     </DataTrigger> 
    </Style.Triggers> 
</Style> 

<Toolkit:DataGrid RowStyle={StaticResource DataGridRowCorrectStyle} ... /> 
0

Чтобы изменить цвет фона строки, вам необходимо изменить цвет фона каждой ячейки в строке. Создайте стиль, который устанавливает цвет фона, а затем назначает его члену CellStyle. Если вы хотите установить цвет с помощью RowStyle, установите цвет фона ячеек на Transparent, а затем установите цвет с помощью стиля RowStyle.

Смежные вопросы