WPF Xceed datagrid—单元格上的数据触发器';s的内容使我在加载时丢失数据…但是
我正在为WPF使用datagrid。今天,我试图更改整行的背景,如果其中一列“SA”具有some值或不为null。我在代码隐藏中使用转换函数编写了以下代码:WPF Xceed datagrid—单元格上的数据触发器';s的内容使我在加载时丢失数据…但是,wpf,data-binding,datatrigger,xceed-datagrid,Wpf,Data Binding,Datatrigger,Xceed Datagrid,我正在为WPF使用datagrid。今天,我试图更改整行的背景,如果其中一列“SA”具有some值或不为null。我在代码隐藏中使用转换函数编写了以下代码: <xcdg:DataGridControl.Resources> <Style TargetType="{x:Type xcdg:DataRow}"> <Style.Triggers> <DataTrigger Binding="{Binding Re
<xcdg:DataGridControl.Resources>
<Style TargetType="{x:Type xcdg:DataRow}">
<Style.Triggers>
<DataTrigger Binding="{Binding RelativeSource={RelativeSource Self}, Converter={StaticResource newConverter}, Path=Cells[SA].Content}" Value="True">
<Setter Property="Background" Value="LightGreen" />
</DataTrigger>
</Style.Triggers>
</Style>
</xcdg:DataGridControl.Resources>
令我惊讶的是,当我第一次加载网格时,SA列中的数据就不见了。然而,一旦我向下滚动一点,直到该行(应该有该列的数据)不可见,然后当我再次向上滚动以查看该行时,我可以看到该列中的值以及背景的变化
我做错了什么?使用简单绑定,避免转换器/模板
<TextBlock Text="{Binding}"></TextBlock>
要在列或以下代码中填充颜色:
<xcdg:Column Title="Unit Price" FieldName="UnitPrice" ReadOnly="True">
<xcdg:Column.CellContentTemplate>
<DataTemplate>
<DockPanel LastChildFill="false" x:Name="UnitPrice">
<TextBlock Text="{Binding}"></TextBlock>
<Image x:Name="img" Width="16" Height="16" DockPanel.Dock="Right"
Margin="2,0,0,0" Visibility="Collapsed"
ToolTip="Unit Price is Undefined." VerticalAlignment="Center"
HorizontalAlignment="Left" />
</DockPanel>
<DataTemplate.Triggers>
<DataTrigger Binding="{Binding}" Value="0.00">
<Setter TargetName="img" Property="Visibility" Value="Visible" />
<Setter TargetName="UnitPrice" Property="Background" Value="Pink" />
</DataTrigger>
</DataTemplate.Triggers>
</DataTemplate>
</xcdg:Column.CellContentTemplate>
</xcdg:Column>