2013-10-24 1 views
2

У меня есть TextBlock, и я пытаюсь связать текст с шрифтом-удивительным персонажем, который будет использоваться в качестве флажка. У меня есть свойство, возвращающее строку символов, но кажется, что что-то преобразует его в строку вместо символа.привязка шрифт-awesome символ в XAML к тексту

Это работает и рисует флажок:

<TextBlock Text="&#xf096;" FontFamily="/Resources/fontawesome-webfont.ttf#FontAwesome" /> 

Эта комбинация делает: не

public class myObject 
{ 
    public string MyString 
    { 
     get { return "&#xf096;" } 
    } 
} 

<TextBlock Text{Binding MyString} FontFamily="/Resources/fontawesome-webfont.ttf#FontAwesome" /> 

Вместо этого, он рисует реальную строку (с # xf096; и др), как если бы это было убежали.

Любые идеи, почему и как это сделать, возвращают неуказанный символ?

Спасибо!

ответ

7

Похоже, ваша цель может быть достигнута с помощью unicode управляющие последовательности:

public class myObject 
{ 
    public string MyString 
    { 
     get { return "\uf096"; } 
    } 
} 

<TextBlock Text="{Binding MyString}" FontFamily="../Resources/fontawesome-webfont.ttf#FontAwesome" /> 

Затем строка обрабатывается даже при условии, путем связывания. Я тестировал его на рабочем столе, но я думаю, что это тоже должно работать по версии телефона.

+0

Спасибо, что сделал трюк! глупая ошибка с моей стороны ... –

0

Ну, я не уверен, является ли это причиной или нет, но ваш TextBlock должен читать Text="{Binding MyString}" (вам не хватает знака quote и equals), и вы также должны убедиться, что DataContext для страницы/независимо от того, что установлено для экземпляра вашего класса MyObject, чтобы его можно было подобрать. Наконец, ваше свойство, вероятно, должно реализовать INotifyPropertyChanged, если вы когда-либо намерены обновить привязку.