[英]WPF Datagrid.Row AlternationIndex MultiTrigger Property and Viewmodel
I wonder why this doesn't works: 我不知道为什么这行不通:
<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>
this code throws InvalidOperationException "Must have non-null value for 'Property'". 此代码将引发InvalidOperationException““属性”必须具有非null值”。 IsTiket is a property of Datacontext which Datagrid is binded to
IsTiket是Datacontext的属性,Datagrid绑定到该属性
This code works but I need MultiTrigger: 这段代码有效,但是我需要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>
SOLUTION: Syntax error, I have to use MultiDataTrigger: 解决方案:语法错误,我必须使用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>
You're using a multitrigger rather than a multidatatrigger. 您使用的是多重触发,而不是多重数据触发。 Try
尝试
<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>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.