2013-05-06 2 views
2

У меня есть 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> 

То, что я хочу сделать, это иметь эти Средние значения Веса выровненных в десятичной точке, не показывая лишние замыкающие нули. Как я могу это достичь?

ответ

4

Вам нужно будет либо раздувания с 0, используя свойство строки формата на связывании или построить свой собственный IValueConverter обрабатывать преобразования с помощью String.PadLeft дать ему дополнительные пробелы ,

Предполагается, что вы используете шрифт с фиксированной шириной, если вы этого не сделаете, вам, вероятно, придется отделить дробный и целочисленный компонент числа и связать его с несколькими текстовыми блоками.

0

попробовать с StringFormat

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

Добавьте к этому Ярлык:

ContentStringFormat="{}{0:F5}" 

Это создаст 5 нулей, если это необходимо.

Смежные вопросы