我正在尝试根据其中一个单元格的当前值更改 DataGrid 中行的背景。我的研究使我得出结论,你可以使用 DataTrigger 来做到这一点,但我似乎无法编写一个不会出错的绑定表达式。
该部分的我的XAML如下:
<DataGrid Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="2" ItemsSource="{Binding TodaysBets}" ColumnWidth="*" CanUserAddRows="False" AutoGenerateColumns="False" TextBlock.FontSize="14" IsReadOnly="True">
<DataGrid.RowStyle>
<Style TargetType="DataGridRow">
<Style.Triggers>
<DataTrigger Binding="{Binding Matched}" Value="false"> //This binding expression failing
<Setter Property="Background" Value="LightCoral"/>
</DataTrigger>
</Style.Triggers>
</Style>
</DataGrid.RowStyle>
<DataGrid.Columns>
......DataGridColumn Definitions here all bound to "TodaysBets"
</DataGrid.Columns>
</DataGrid>
匹配列是一个布尔值,它不断抛出绑定错误,例如在对象 DataRowView 上找不到属性匹配。任何人都可以帮助我尝试过一切吗?
它抛出的错误是:
System.Windows.Data Error: 40 : BindingExpression path error: 'Matched' property not found on 'object' ''DataRowView' (HashCode=4932563)'. BindingExpression:Path=Matched; DataItem='DataRowView' (HashCode=4932563); target element is 'DataGridRow' (Name=''); target property is 'NoTarget' (type 'Object')
答案 0 :(得分:0)
找到解决方案。我所要做的就是将我的绑定表达式更改为:
Binding="{Binding Row.Matched}"
因为绑定选择了DataRowView所以我必须在绑定到正确的属性之前选择基础DataRow。