按小数点对齐值

时间:2013-05-06 05:07:08

标签: c# wpf xaml alignment

我有一个DataGridTemplate,它绑定了一个双倍值“AverageWeight”。此字段不必包含任何小数位,但最多可以包含5个小数位。

public double AverageWeight
{
    get { return _averageWeight; }
    set
    {
        _averageWeight = value;
        RaisePropertyChanged(() => AverageWeight);
    }
}

XAML就是:

<DataGridTemplateColumn Width="4*"  Header="Avg. Weight">
    <DataGridTemplateColumn.CellTemplate>
        <DataTemplate>
            <Label VerticalAlignment="Center" Content="{Binding Path=AverageWeight}"/>
        </DataTemplate>
    </DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>

我想要做的是让这些平均权重值在小数点处对齐,而不显示不必要的尾随零。我怎样才能做到这一点?

3 个答案:

答案 0 :(得分:4)

您需要使用绑定上的格式字符串属性将其填充为0,或者构建您自己的IValueConverter以使用String.PadLeft处理转换以为其提供额外的空格。

这假定您使用的是固定宽度字体,如果不是,那么您可能需要将数字的小数和整数分量分开并将其绑定到多个文本块中。

答案 1 :(得分:0)

尝试使用StringFormat

Content="{Binding Path=AverageWeight, StringFormat=N5}"

答案 2 :(得分:0)

将其添加到标签:

ContentStringFormat="{}{0:F5}"

如果需要,它将创建5个零。