StringFormat показывает ошибку в Designer, но не после компиляции - PullRequest
0 голосов
/ 03 июля 2018

У меня есть программа C # / WPF с MVVM.

И Kalkulation.Artikel.PartWeight, и Kalkulation.Artikel.SprueWeight являются десятичными.
Формат обоих должен иметь один необязательный десятичный знак и разделитель тысяч.

Я реализовал это, как на скриншоте ниже. Error in StringFormat

Для каждого StringFormat я получаю три ошибок:

Error   XLS0112 Expected ''.    Kalkulation MainWindow.xaml 113 
Error   XLS0414 The type '' was not found. Verify that you are not missing an assembly reference and that all referenced assemblies have been built. Kalkulation    MainWindow.xaml 113 
Error   XLS0112 Expected '

На рисунке показаны знаки, которые не могут быть отображены Stackoverflow. enter image description here


Когда я компилирую, у меня вообще нет ошибки, все работает как положено!
Сообщения об ошибках снова появляются, когда я что-то меняю в коде XAML.

Я отключил синхронизацию между отображением текстового поля, чтобы легко вводить десятичные дроби.
FrameworkCompatibilityPreferences.KeepTextBoxDisplaySynchronizedWithTextProperty = false;

Что я могу сделать, чтобы изменить это? Могу ли я хотя бы «отфильтровать» сообщения об ошибках?

Ответы [ 4 ]

0 голосов
/ 20 марта 2019

Я получил эту ошибку при форматировании строки DateTime, например:

Text="{Binding MyDateTime, StringFormat='yyyy-MM-dd
HH:mm:ss'}"

, где 
 - символ NewLine.

Решением для меня было избавиться от символа NewLine с дополнительной обратной косой чертой, такой как:

Text="{Binding MyDateTime, StringFormat='yyyy-MM-dd\
HH:mm:ss'}"
0 голосов
/ 03 июля 2018

Простое решение ...
Я должен был поместить одинарные кавычки вокруг него, потому что он содержал запятые. Запятые интерпретируются как разделители, но компилятор держал их вместе.

0 голосов
/ 26 августа 2018

Если у вас уже есть одинарные кавычки и вы все еще получаете ошибки XLS0112 XAML, разделитель {} перед запросами на форматирование {0:C0} может отсутствовать.

Будьте осторожны с любым переформатированием, которое удаляет весь начальный текст, который не требует разделителя!

Хорошо:

stringformat='Currency {0:C0}' // Proper string formatting

stringformat='{}{0:C0}' // Proper string formatting

Bad:

stringformat='{0:C0}' // Functions but raises "XLS0112 XAML"

0 голосов
/ 03 июля 2018

У меня была та же проблема, и я решил ее вручную, удалив папку obj / bin и перестроив решение.

Пожалуйста, смотрите здесь для аналогичной проблемы в Xamarin.

...