StringFormat在Designer中显示错误,但编译后未显示

时间:2018-07-03 06:24:00

标签: c# wpf xaml string-formatting

我有一个带有MVVM的C#/ WPF程序。

Kalkulation.Artikel.PartWeightKalkulation.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 :(得分:9)

如果您已经有单引号并且仍然出现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"

答案 1 :(得分:1)

简单的解决方案...
由于其中包含逗号,因此必须在其周围加上单引号。 逗号被解释为分隔符,但编译器将它们保持在一起。

答案 2 :(得分:0)

我遇到了同样的问题,并通过手动删除obj / bin文件夹并重新构建解决方案来解决。

有关Xamarin中的类似问题,请参见here

答案 3 :(得分:0)

在对DateTime进行字符串格式化时,出现了此错误:

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

其中
是换行符。

对我来说,解决方案是使用这样的额外反斜杠转义NewLine字符:

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