2012-01-24 2 views
2

Я хочу изменить цвет AlternatingRowBackground на основе dataTrigger. Я получаю сообщение об ошибке из IDE, и он не будет создан (см. Ниже xaml).Styling Wpf AlternatingRowBackground on Trigger

Ошибка: Не удается найти свойство стиля 'AlternatingRowBackground' по типу 'System.Windows.Controls.DataGridRow'

Xaml

<Style TargetType="{x:Type DataGridRow}"> 
      <Setter Property="AlternatingRowBackground" Value="Beige" /> 
      <Style.Triggers> 
       <Trigger Property="IsMouseOver" Value="True"> 
        <Setter Property="Background" Value="{StaticResource SelectedRowBackgroundBrush}" /> 
       </Trigger> 
       <DataTrigger Binding="{Binding BondType}" Value="P"> 
        <Setter Property="Background" Value="Pink"/> 
        <Setter Property="AlternatingRowBackground" Value="LightPink" /> 
       </DataTrigger> 
      </Style.Triggers> 
     </Style> 

Любые идеи будут оценены.

ответ

3

Ваш стиль ориентирован на DataGridRow, но "AlternatingRowBackground" является собственностью DataGrid.

Для этого необходим отдельный стиль для DataGrid и DataGridRow. Установите AlternatingRowBackground в вашем стиле DataGrid:

<Style x:Key="DataGridStyle" TargetType="{x:Type DataGrid}"> 
    <Setter Property="AlternatingRowBackground" Value="Beige" /> 
    ... 
</Style> 

<Style x:Key="DataGridDemoRowStyle" TargetType="{x:Type DataGridRow}"> 
    <Style.Triggers> 
      <Trigger Property="IsMouseOver" Value="True"> 
       <Setter Property="Background" Value="{StaticResource SelectedRowBackgroundBrush}" /> 
      </Trigger> 
      <DataTrigger Binding="{Binding BondType}" Value="P"> 
       <Setter Property="Background" Value="Pink"/> 
      </DataTrigger> 
    </Style.Triggers> 
</Style> 
+0

Спасибо, я дам вам попробовать и вернуться к вам, имеет смысл. – DermFrench

+0

Привет, то, что я на самом деле хочу сделать, это применить битю на чередующихся строках, за исключением случаев, когда встречается datatrigger, на этом этапе я хочу lightpink. Это возможно? – DermFrench

+0

Вы говорите, что хотите изменить alternatingRowColor для всех альтернативных строк, которые появляются после строки, где выполняется dataTrigger? – theartwebreathe