C# 通过一个单元格';将内容转换为XAML格式的转换器

C# 通过一个单元格';将内容转换为XAML格式的转换器,c#,wpf,xaml,converter,datagridcell,C#,Wpf,Xaml,Converter,Datagridcell,我试图创建一种样式,根据单元格内容的类型对齐单元格。如果是文本,则向左对齐;如果是数字,则向右对齐。我尝试创建一个转换器,它根据给定的值返回对齐。代码如下: <Style x:Key="Align" TargetType="{x:Type DataGridCell}" BasedOn="{StaticResource {x:Type DataGridCell}}"> <Setter Property="Template"> <Setter.V

我试图创建一种样式,根据单元格内容的类型对齐单元格。如果是文本,则向左对齐;如果是数字,则向右对齐。我尝试创建一个转换器,它根据给定的值返回对齐。代码如下:

<Style x:Key="Align" TargetType="{x:Type DataGridCell}" BasedOn="{StaticResource {x:Type DataGridCell}}">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="{x:Type DataGridCell}">
                <Grid Background="{TemplateBinding Background}">
                    <ContentPresenter HorizontalAlignment="{Binding Converter={StaticResource SmartAlignmentConverter}}"/>
                </Grid>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

但问题是细胞内没有信息。当它被发送到转换器时,它的内容为空。我不认为有一种方法可以在填充信息后将内容发送到转换器?

={RelativeSource AncestorType=DataGridCell}

是的,似乎是在单元格中发送的。但是单元格总是空的。@user2722951:我认为这不是一个好方法,这种行为属于类代码,或者可能属于附加的行为。通过转换器发送复杂的东西很少是个好主意。
Binding="{Binding RelativeSource={RelativeSource self}, Converter={StaticResource SmartAlignmentConverter}}"