1

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

<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>

问题是转换器发送的是行对象,而不是单元格。如中,包含行变量的整个对象被发送进来,因此没有关于哪个特定单元格正在对齐的可用信息。我需要一些方法来专门发送单元格的值。

更新:

我已经成功地发送了单元格本身,这是朝着正确方向迈出的一步。

Binding="{Binding RelativeSource={RelativeSource self}, Converter={StaticResource SmartAlignmentConverter}}" 

但是问题已经变成了细胞内部没有信息。它的内容在发送到转换器时为空。我不认为有办法在填充信息后将其发送到转换器?

4

1 回答 1

0

RelativeSource={RelativeSource AncestorType=DataGridCell}?

于 2013-08-29T20:07:07.783 回答