Xamarin.Forms FontAwesome не работает со связанными свойствами
Я хочу добавить шрифт в свой проект Xamarin.Forms, и я добавил его в проект. Затем я добавил FontFamily к метке следующим образом:
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<Grid Padding="15">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="9*" />
</Grid.ColumnDefinitions>
<Label Grid.Column="0" Text="" FontSize="20">
<Label.FontFamily>
<OnPlatform x:TypeArguments="x:String">
<On Platform="iOS" Value="Font Awesome 5 Free" />
<On Platform="Android" Value="fa-regular-400.ttf#Font Awesome 5 Free Regular" />
</OnPlatform>
</Label.FontFamily>
</Label>
<Label Grid.Column="1" Text="{Binding Title}" FontSize="20"/>
</Grid>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
Этот код работает нормально, и это результат
Но когда я изменяю этот жестко запрограммированный материал на привязываемое свойство, подобное этому:
<Label Grid.Column="0" Text="{Binding FontAwesomeIconText}" FontSize="20">
И установите это так в C#
menuItems = new List<DrawerMenuItem>
{
new DrawerMenuItem {Id = MenuItemType.Browse, Title="Browse", FontAwesomeIconText = "" },
new DrawerMenuItem {Id = MenuItemType.About, Title="About" , FontAwesomeIconText = ""}
};
Это ломает. И я вижу его код
Я также попытался использовать ResourcesDictionary в моем файле App.xaml
<OnPlatform x:TypeArguments="x:String" x:Key="FontAwesome">
<On Platform="iOS" Value="Font Awesome 5 Free" />
<On Platform="Android" Value="fa-regular-400.ttf#Font Awesome 5 Free Regular" />
</OnPlatform>
И получил тот же результат. В чем может быть проблема?
1 ответ
Решение
Я нашел решение здесь https://forums.xamarin.com/discussion/30298/fontfamily-not-working-when-using-textproperty-binding
Это меняет строку как 
к значению Unicode, как \uf11a
И это работает для меня. Просто и понятно
с новым годом всех!:)