Отображение значков шрифтов Xamarin из сохраненных данных - PullRequest
0 голосов
/ 30 апреля 2020

Каков наилучший способ отображения значков шрифтов с данными, извлекаемыми из веб-службы? Я хочу сохранить значение значка и отобразить значок, аналогичный остальной информации, но со значком настраиваемого шрифта.

У меня есть приложение xamarin форм, успешно работающее с данными из веб-службы. Вот моя модель.

public class TypeModel
{
    [PrimaryKey]
    public int pType { get; set; }

    public int fDepartment { get; set; }

    public string Title { get; set; }

    public string Description { get; set; }

    public string Icon { get; set; }

    public string Version { get; set; }

}

Я также получил значки шрифта, работающие успешно, как в учебном пособии по [1]: https://montemagno.com/using-font-icons-in-xamarin-forms-goodbye-images-hello-fonts/ Я сохранил свои значки в этом классе. Попытка перехода к управлению этими значениями с помощью веб-службы или массива, если у меня тоже есть сейчас. Моя ViewModel выполняет работу по созданию коллекции. Как назначить значение, которое будет отображаться и совпадать правильно.

public ObservableCollection<TypeModel> TypesCollection { get; set; }

TypesCollection.Clear();

IEnumerable<TypeModel> types = await DataSource.GetTypes();

foreach (var key in types)
{
    \\Original value doesn't display correctly, shows like \U f 1 2 c when debugging on emulator
    \\key.Icon = key.Icon;

    \\Works and displays correctly but static data displays one icons for all
    \\key.Icon = "\uf12c";

    \\Works and displays correctly but static data displays one icons for all
    \\key.Icon = FontClass.IconCheckMark;

    TypesCollection.Add(key);    
}

Хорошо и просто после этого для файлов xaml.

<ResourceDictionary>

    <OnPlatform x:Key="IconFonts" x:TypeArguments="x:String">

        <On Platform="iOS" Value="Material Design Icons"></On>

        <On Platform="Android" Value="IconFonts.ttf#Material Design Icons"></On>

        <On Platform="UWP" Value="/Assets/IconFonts.ttf#Material Design Icons"></On>

    </OnPlatform>

</ResourceDictionary>

<Label FontFamily="{StaticResource IconFonts}" Text="{Binding Icon}"></Label>

1 Ответ

0 голосов
/ 30 апреля 2020

Какой тип key.Icon? Если это строка, вы можете удалить пробел между символами:

key.Icon  = key.Icon.Replace(" ", "").ToLower();
...