【问题标题】:How to bind a special char to a textblock如何将特殊字符绑定到文本块
【发布时间】:2016-06-06 12:53:07
【问题描述】:

例如,假设我想将以下值绑定到 TextBlock 的 Text 属性:& amp; 必须显示为 &。

它的绑定语法如何?

<TextBlock Text="{Binding Foo}" HorizontalAlignment="Left" />

class MyViewModel : BaseViewModel {
    public string Foo {get; set;}

    public MyViewModel { Foo = "&amp;" }
}

这里显示的是“&”而不是“&”。

请注意,char & 是任意选择的,问题是关于任何无法直接从键盘键入的字符,如 &。例如&8730;

【问题讨论】:

  • 只需在将 html\xml 分配给 Foo 属性之前对其进行转义,或者编写一个转换器来进行转义

标签: c# .net wpf xaml data-binding


【解决方案1】:

The C# parser isn't an XML parser,所以它不知道&amp;amp; 有什么特别之处。控件的 Text 属性也不是 XML 解析器,因此它只显示您给它的五个字符。

所以给它实际的字符。如果您在 C# 文字字符串中执行此操作,将其编码为 C# 解析器,因为那是解析它的解析器——在这种特定情况下,只需给它一个文字 & 符号,在C# 文字字符串不需要转义。对于\x8730,只需给它"\x8730"

public MyViewModel { Foo = "&" }

不是 WPF 控件需要 XML 编码;它是需要它的 XML 解析器。

【讨论】:

    猜你喜欢
    • 2019-10-30
    • 2018-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多