如何将TextDecorations更改为Strikethrough?

时间:2014-08-12 05:27:55

标签: wpf mvvm datagridview caliburn.micro

我正在尝试使用删除线装饰来更改非活动数据。

<DataGrid.CellStyle>
    <Style TargetType="{x:Type DataGridCell}">
        <Setter Property="IsTabStop" Value="True" />
        <Setter Property="TextDecorations" Value="{Binding SelectedEntryType.TypeOfEntry, Converter={StaticResource DisplayValueToStrikethrough}}"/>
    </Style>
</DataGrid.CellStyle>

问题如下:The member "TextDecorations" is not recognized or is not accessible. 我正在使用MVVM设计模式。 我已经添加了System.Windows dll。我该如何解决这个错误?谢谢。

1 个答案:

答案 0 :(得分:1)

尝试这样写TextBlock.TextDecorations

<Setter Property="TextBlock.TextDecorations" 
        Value="{Binding SelectedEntryType.TypeOfEntry, Converter={StaticResource DisplayValueToStrikethrough}}" />

Edit

在这种情况下,您需要使用DataGridTemplateColumn实施TextBlockElementStyle使用 DataGridTextColumn

<DataGridTextColumn Header="Test">
    <DataGridTextColumn.ElementStyle>
        <Style TargetType="{x:Type TextBlock}">
            <Setter Property="TextDecorations" Value="Strikethrough" />
        </Style>
    </DataGridTextColumn.ElementStyle>
</DataGridTextColumn>