Округление значения в привязке WPF - PullRequest
4 голосов
/ 07 сентября 2010

Я пытаюсь реализовать индикатор выполнения с текстовым полем вверху, которое также отображает% прогресса.Однако процент является дробным.Можно ли округлить значение, возвращенное в наборе данных, через привязку, или это нужно сделать с помощью кода позади?

<ProgressBar Grid.Row="2" Grid.ColumnSpan="2" Height="25" HorizontalAlignment="Stretch"  Margin="5,5,5,2" Name="pbProgressIndex" VerticalAlignment="Top" Width="Auto" Value="{Binding Path=ProgressIndex, Mode=OneWayToSource}" />
<TextBlock Grid.Row="2" Grid.ColumnSpan="2" Height="25" Name="txtProgressIndex" Text="{Binding Path=ProgressIndex, Mode=OneWayToSource}" Width="Auto" Foreground="Black" FontWeight="Bold" FontSize="14" FontFamily="Verdana" Padding="5" Margin="5,5,5,5" TextAlignment="Center" />

Ответы [ 3 ]

6 голосов
/ 07 сентября 2010

Используйте свойство StringFormat привязки, например:

{Binding Path=ProgressIndex, Mode=OneWayToSource, StringFormat=2N}
5 голосов
/ 22 апреля 2012
StringFormat={}{0:#.00}

это выглядит лучше для меня;)

1 голос
/ 07 сентября 2010

В дополнение к StringFormat в ответе Femaref вам нужно избавиться от настроек Mode=OneWayToSource.Этот режим предназначен для передачи значений из элемента управления в связанный объект (например, ViewModel) без получения обновлений для значения из кода, что противоположно тому, что вы пытаетесь сделать.Вы хотите режим OneWay для них, который оказывается по умолчанию для обоих TextBlock.Text.ProgressBar.Value по умолчанию использует TwoWay, который в этом случае будет работать нормально, но вы также можете установить его на Mode=OneWay.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...