powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Свойство BindingBase.StringFormat не работает - не форматирует число
12 сообщений из 12, страница 1 из 1
Свойство BindingBase.StringFormat не работает - не форматирует число
    #38747409
НемоКэп42
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привязал число типа double из модели представления:

Код: xml
1.
<Label Content="{Binding Path=MyValue, StringFormat=Now {0:0000.000}!}" />



Как было в MyValue число, скажем, 841,45686421, так и в интерфейсе отображается. Т. е. не хочет форматироваться.


Ещё такой вопрос. Почему на

StringFormat={0:0000.000}

выдаёт ошибку парсера замла - не может он распознать такое форматирование?
...
Рейтинг: 0 / 0
Свойство BindingBase.StringFormat не работает - не форматирует число
    #38747410
НемоКэп42
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это WPF в .NET 4.5.
...
Рейтинг: 0 / 0
Свойство BindingBase.StringFormat не работает - не форматирует число
    #38747537
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Свойство BindingBase.StringFormat не работает - не форматирует число
    #38748652
НемоКэп42
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сон Веры Павловны http://stackoverflow.com/questions/4206612/wpf-stringformat-on-label-content
Пробовал и ярлык, и текстовый блок. Текстовый блок пробовал с немного бОльшим числом вариантов. Ничего из нижеперечисленного не помогло:

исходное число 841,45686421 типа double, конвертеров нет

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
<Label ContentStringFormat="##.##"/> - показывает "841,45686421"
<Label ContentStringFormat="{0:##.##}"/> - ошибка парсера
<Label ContentStringFormat="0:##.##"/> - показывает "841,45686421"
<Label ContentStringFormat=" {0:##.##}"/> - показывает " 841,45686421"
<Label ContentStringFormat="\{0:##.##\}"/> - по умолчанию показывает "\0", затем "\841,45686421"
<Label ContentStringFormat="{}{0:##.##}"/> - показывает "841,45686421"
<Label ContentStringFormat="Blah ##.##"/> - показывает "841,45686421"
<Label ContentStringFormat="Blah {0:##.##}"/> - показывает "Blah 841,45686421"

<TextBlock Text="{Binding StringFormat=##.##"/> - показывает "841,45686421"
<TextBlock Text="{Binding StringFormat={0:##.##}"/> - ошибка парсера
<TextBlock Text="{Binding StringFormat=0:##.##"/> - показывает "841,45686421"
<TextBlock Text="{Binding StringFormat='0:##.##'"/> - показывает "841,45686421"
<TextBlock Text="{Binding StringFormat= {0:##.##}"/> - ошибка парсера
<TextBlock Text="{Binding StringFormat=' {0:##.##}'"/> - показывает " 841,45686421"
<TextBlock Text="{Binding StringFormat='{0:##.##}'"/> - ошибка парсера
<TextBlock Text="{Binding StringFormat=\{0:##.##\}"/> - ошибка парсера
<TextBlock Text="{Binding StringFormat={}{0:##.##}"/> - показывает "841,45686421"
<TextBlock Text="{Binding StringFormat=Blah ##.##"/> - показывает "841,45686421"
<TextBlock Text="{Binding StringFormat='Blah ##.##'"/> - показывает "841,45686421"
<TextBlock Text="{Binding StringFormat=Blah {0:##.##}"/> - показывает "Blah 841,45686421"
<TextBlock Text="{Binding StringFormat='Blah {0:##.##}'"/> - показывает "Blah 841,45686421"
...
Рейтинг: 0 / 0
Свойство BindingBase.StringFormat не работает - не форматирует число
    #38748707
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть подозрение, что для форматирования всё-таки приходит не double. Проверьте этот факт конвертером.
У меня, например, всё прекрасно работает:
Код: xml
1.
2.
3.
4.
5.
6.
7.
<Label
  xml:lang="ru"
  Content="{Binding MyValue}"
  ContentStringFormat="Now {0:#,0.00}!"/>
<TextBlock
  Grid.Row="1"
  Text="{Binding MyValue, StringFormat='{}{0:#,#.##} now!'}"/>


- при заданном MyValue=12345841.45686421 выводит Now 12 345 841,45! и 12,345,841.45 now!
...
Рейтинг: 0 / 0
Свойство BindingBase.StringFormat не работает - не форматирует число
    #38748751
monstrilla
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
НемоКэп42,

Код: xml
1.
2.
3.
4.
<Grid>
        <Label ContentStringFormat="ololowa #.###" Content="{Binding ModelNumber}" HorizontalAlignment="Left"/>
        <TextBlock Text="{Binding ModelNumber, StringFormat=#.## ololowa}" HorizontalAlignment="Right"/>
</Grid>



ModelNumber - Double

Выводит ololowa 841.457 и 841.46 ololowa соответственно. Без ololowa тоже работает Правда .Net 4.0

авторЕщё такой вопрос. Почему на

StringFormat={0:0000.000}

выдаёт ошибку парсера замла - не может он распознать такое форматирование?

очевидно не может, и везде, где ошибка парсера тоже. почему? ну тут надо спросить у разрабов, почему они не определили подобные форматы :)
...
Рейтинг: 0 / 0
Свойство BindingBase.StringFormat не работает - не форматирует число
    #38748770
НемоКэп42
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сон Веры ПавловныЕсть подозрение, что для форматирования всё-таки приходит не double. Проверьте этот факт конвертером.
У меня, например, всё прекрасно работает:
Код: xml
1.
2.
3.
4.
5.
6.
7.
<Label
  xml:lang="ru"
  Content="{Binding MyValue}"
  ContentStringFormat="Now {0:#,0.00}!"/>
<TextBlock
  Grid.Row="1"
  Text="{Binding MyValue, StringFormat='{}{0:#,#.##} now!'}"/>


- при заданном MyValue=12345841.45686421 выводит Now 12 345 841,45! и 12,345,841.45 now!
Проверил в конвертере под дебагом - приходит object {string}.
...
Рейтинг: 0 / 0
Свойство BindingBase.StringFormat не работает - не форматирует число
    #38748778
НемоКэп42
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
НемоКэп42Сон Веры ПавловныЕсть подозрение, что для форматирования всё-таки приходит не double. Проверьте этот факт конвертером.
У меня, например, всё прекрасно работает:
Код: xml
1.
2.
3.
4.
5.
6.
7.
<Label
  xml:lang="ru"
  Content="{Binding MyValue}"
  ContentStringFormat="Now {0:#,0.00}!"/>
<TextBlock
  Grid.Row="1"
  Text="{Binding MyValue, StringFormat='{}{0:#,#.##} now!'}"/>


- при заданном MyValue=12345841.45686421 выводит Now 12 345 841,45! и 12,345,841.45 now!
Проверил в конвертере под дебагом - приходит object {string}.
Ой! Верно! У меня в моделях представления строка! Чего-то я не заметил.

Сейчас исправил на double и всё заработало. Спасибо, что навели на путь решения.


А вот зачем я сделал в модели представления строки?...

Кто-нибудь, случаем, не знает, имеет смысл числа в строки переводить в моделях представления? Мне раньше почему-то казалось, что если выводишь данные в контрол, который только строки поддерживает, то надо эти данные в строку переделать. А тут узнал, что есть такие вещи, как StringFormat и ContentStringFormat - так получается, что тогда не обязательно числа в строки превращать?
...
Рейтинг: 0 / 0
Свойство BindingBase.StringFormat не работает - не форматирует число
    #38748781
monstrilla
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
НемоКэп42,

проверил свой код на машине с 4.5. работает.

что-то у тебя не так. проект можешь скинуть или полный код?
...
Рейтинг: 0 / 0
Свойство BindingBase.StringFormat не работает - не форматирует число
    #38748797
monstrilla
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
НемоКэп42,
автортак получается, что тогда не обязательно числа в строки превращать?

совершенно верно
...
Рейтинг: 0 / 0
Свойство BindingBase.StringFormat не работает - не форматирует число
    #38748822
НемоКэп42
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
monstrillaНемоКэп42,

проверил свой код на машине с 4.5. работает.

что-то у тебя не так. проект можешь скинуть или полный код?
Не понял, с чем не так?
...
Рейтинг: 0 / 0
Свойство BindingBase.StringFormat не работает - не форматирует число
    #38748890
monstrilla
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
НемоКэп42,

уже ни с чем, я просто не увидел твой пост перед моим, а удаление здесь не поддерживается
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Свойство BindingBase.StringFormat не работает - не форматирует число
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]