2

DataGridTemplatedouble 値「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>

私がやりたいことは、不要な末尾のゼロを表示せずに、これらの平均重量値を小数点に揃えることです。どうすればこれを達成できますか?

4

3 に答える 3

4

バインディングの書式文字列プロパティを使用して 0 で埋めるか、独自の IValueConverter を作成して String.PadLeft を使用して変換を処理し、余分なスペースを与える必要があります。

これは、固定幅フォントを使用していることを前提としています。そうでない場合は、数値の小数部分と整数部分を分離し、複数のテキスト ブロックにバインドする必要があります。

于 2013-05-06T05:14:19.880 に答える
0

StringFormat で試してください

Content="{Binding Path=AverageWeight, StringFormat=N5}"
于 2013-05-06T05:13:37.127 に答える