我正在尝试创建一种根据单元格内容类型对齐单元格的样式。如果是文本,则左对齐,如果是数字,则右对齐。我试图创建一个转换器,它根据给定的值返回对齐方式。这是代码:
<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}}"
但是问题已经变成了细胞内部没有信息。它的内容在发送到转换器时为空。我不认为有办法在填充信息后将其发送到转换器?