Zodman Zodman - 9 days ago 4
C# Question

Can't use apostrophe in StringFormat of a XAML binding?

I'm trying use StringFormat to insert apostrophies (apostrophe's?) around a value that is bound to a TextBlock:

<TextBlock Text="{Binding MyValue, StringFormat='The value is &apos;{0}&apos;'}"/>


However, I get a compile error:


Names and Values in a MarkupExtension cannot contain quotes. The MarkupExtension arguments ' MyValue, StringFormat='The value is '{0}''}' are not valid.


I do notice that it does work for quotes though:

<TextBlock Text="{Binding MyValue, StringFormat='The value is &quot;{0}&quot;'}"/>


Is this a bug with StringFormat?

Answer

I'm not sure if it's a bug, but I tested this method, and it works:

<TextBlock Text="{Binding MyValue, StringFormat='The value is \'{0}\''}" />

Seems like single quotes within StringFormat have to be escaped using \ as opposed to the traditional XML style &apos;