DataGridCell ElementStyle基于绑定属性

时间:2017-11-08 10:25:36

标签: vb.net xaml

如何使用链接到列值属性的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

0 个答案:

没有答案