Свойство WPF Datagrid.Row AlternationIndex MultiTrigger и Viewmodel
Интересно, почему это не работает:
<DataGrid AlternationCount="2"...
<DataGrid.RowStyle>
<Style TargetType="{x:Type DataGridRow}">
<Style.Triggers>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Binding="{Binding AlternationIndex, RelativeSource={RelativeSource Self}}" Value="0" />
<Condition Binding="{Binding IsTicket}" Value="False" />
</MultiTrigger.Conditions>
<MultiTrigger.Setters>
<Setter Property="Background" Value="White" />
</MultiTrigger.Setters>
</MultiTrigger>
</Style.Triggers>
</Style>
</DataGrid.RowStyle>
этот код выдает InvalidOperationException "Должно иметь ненулевое значение для" Свойство "". IsTiket является свойством Datacontext, к которому привязан Datagrid
Этот код работает, но мне нужен MultiTrigger:
<DataGrid.RowStyle>
<Style TargetType="{x:Type DataGridRow}">
<Style.Triggers>
<Trigger Property="AlternationIndex" Value="0">
<Setter Property="Background" Value="White" />
</Trigger>
<DataTrigger Binding="{Binding IsTicket}" Value="True">
<DataTrigger.Setters>
<Setter Property="Background" Value="Gold" />
</DataTrigger.Setters>
</DataTrigger>
</Style.Triggers>
</Style>
</DataGrid.RowStyle>
РЕШЕНИЕ: синтаксическая ошибка, я должен использовать MultiDataTrigger:
<DataGrid.RowStyle>
<Style TargetType="{x:Type DataGridRow}">
<Style.Triggers>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding AlternationIndex, RelativeSource={RelativeSource Self}}" Value="0" />
<Condition Binding="{Binding IsTicket}" Value="False" />
</MultiDataTrigger.Conditions>
<MultiDataTrigger.Setters>
<Setter Property="Background" Value="White" />
</MultiDataTrigger.Setters>
</MultiDataTrigger>
</Style.Triggers>
</Style>
</DataGrid.RowStyle>
1 ответ
Вы используете многоканальный, а не многоканальный. Пытаться
<Style TargetType="{x:Type DataGridRow}">
<Style.Triggers>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding Path=AlternationIndex, RelativeSource={RelativeSource Self}}" Value="0" />
<Condition Binding="{Binding IsTicket}" Value="False" />
</MultiDataTrigger.Conditions>
<Setter Property="Background" Value="White" />
</MultiDataTrigger>
</Style.Triggers>
</Style>