如何使用链接到列值属性的DataTriggers为DataGridCell创建样式。
我将DataGridTextColumn绑定到一个对象 - 而不仅仅是文本/数值。该对象具有我想用于显示工具提示,设置颜色等属性......
我可以通过在样式中指定列属性名称来执行此操作,如下所示:
<DataGridTextColumn Header="Payment Terms" Binding="{Binding PaymentTerms, StringFormat='{}{0:0.00}'}" >
<DataGridTextColumn.ElementStyle>
<Style TargetType="TextBlock" BasedOn="{StaticResource RightDataGridColumnStyle}">
<Setter Property="ToolTip" Value="{Binding PaymentTerms.ToolTip}" />
<Style.Triggers>
<DataTrigger Binding="{Binding PaymentTerms.HasChanged}" Value="True" >
<Setter Property="Foreground" Value="Red" />
</DataTrigger>
</Style.Triggers>
</Style>
</DataGridTextColumn.ElementStyle>
</DataGridTextColumn>
但我有几个列都在寻找相同的格式化方法,每个列都基于该列中的数据。所以我希望在一个可以拾取该单元格的绑定项目的Style中执行此操作。
PaymentsTerms属性是一个DataValue类,如下所示:
Public Class DataValue
Public Property Value As Double
Public Property HasChanged As Boolean
Public Property ToolTip As String
Public Overrides Function ToString()
Return Value
End Function
End Class