c#如何将DataGrid Cell的值传递给转换器?

时间:2017-05-23 08:52:25

标签: c# wpf wpfdatagrid

如何将DataGridCell的值传递给Foreground属性转换器?

因此GooglePositionConvertor将返回从Path =传递的对象创建的值。但是我想根据GooglePositionConvertor返回的值更改单元格样式前景色。

<DataGridTextColumn Binding="{Binding Path=., Converter={StaticResource GooglePositionConvertor}}">
    <DataGridTextColumn.CellStyle>
        <Style TargetType="{x:Type DataGridCell}">
            <Setter Property="Foreground" Value="{????????????, Converter={StaticResource ChangeBrushColour}}"/>
        </Style>
    </DataGridTextColumn.CellStyle>
</DataGridTextColumn>

2 个答案:

答案 0 :(得分:1)

只是不指定绑定路径 - Foreground属性将接收DataGridCell的DataContext作为绑定源。

<DataGrid ItemsSource="{Binding ColorList}" AutoGenerateColumns="False">
    <DataGrid.Columns>
        <DataGridTextColumn Binding="{Binding}">
            <DataGridTextColumn.CellStyle>
                <Style TargetType="{x:Type DataGridCell}">
                    <Setter Property="Foreground" Value="{Binding Converter={StaticResource ColorToBrush}}"/>
                </Style>
            </DataGridTextColumn.CellStyle>
        </DataGridTextColumn>
    </DataGrid.Columns>
</DataGrid>

答案 1 :(得分:0)

您可以绑定到Content的{​​{1}}属性并使用DataGridCell来设置DependencyPropertyDescriptor的{​​{1}}属性Foreground属性已设置:

TextBlock
Text