StringFormat показывает ошибку в конструкторе, но не после компиляции

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

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

Я реализовал это, как показано на скриншоте ниже. 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. StringFormat показывает ошибку в конструкторе, но не после компиляции


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

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

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

Вы пробовали заключить значение StringFormat в одинарные кавычки? Что-то вроде StringFormat='{}{0:#,##0.#}'.

Il Vic 03.07.2018 09:48

Да, это все, что мне нужно ... спасибо

Diego 03.07.2018 11:37
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
4
2
5 245
4

Ответы 4

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

См. здесь для аналогичной проблемы в Xamarin.

Извините, дружище, не получилось, но это хорошо знать на будущее!

Diego 03.07.2018 11:38

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

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

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

Хорошо:

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

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

Плохо:

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

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

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

где 
 - символ новой строки.

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

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

Другие вопросы по теме