我有一个TextBlock,我试图将文本绑定到一个字体 - 真棒字符用作复选框。我有一个返回字符串的属性,但似乎有些东西将它转换为字符串而不是字符。
这可以工作并绘制一个复选框:
<TextBlock Text="" FontFamily="/Resources/fontawesome-webfont.ttf#FontAwesome" />
这种组合不会:
public class myObject
{
public string MyString
{
get { return "" }
}
}
<TextBlock Text{Binding MyString} FontFamily="/Resources/fontawesome-webfont.ttf#FontAwesome" />
相反,它会绘制实际字符串(使用#xf096;等),就像它被转义一样。
任何想法为何或如何使其返回不带引号的角色?
谢谢!
答案 0 :(得分:11)
看起来您的目标可以使用unicode转义序列来实现:
public class myObject
{
public string MyString
{
get { return "\uf096"; }
}
}
<TextBlock Text="{Binding MyString}" FontFamily="../Resources/fontawesome-webfont.ttf#FontAwesome" />
然后即使由Binding提供,也会处理字符串。 我在桌面上测试了它,但我认为这应该在手机版本上也能正常工作。
答案 1 :(得分:0)
好吧,我不确定这是不是这个原因,但你的TextBlock应该是Text="{Binding MyString}"
(你错过了引号和等号),你也应该确保用于页面/控件的DataContext /设置为MyObject类实例的任何内容,以便可以拾取它。最后,如果您打算更新绑定,您的属性可能需要实现INotifyPropertyChanged。