Xamarin Databinding как источник для встроенного изображения - PullRequest
0 голосов
/ 12 марта 2019

Я пытаюсь загрузить изображение, определенное в привязке данных {Binding Icon}. Например: {Binding Icon} = fire.png, поэтому local: ImageResource загрузит Imageresource из встроенного ресурса App.Pictures.QuestionIcons.fire.png

<Image Source="{local:ImageResource App.Pictures.QuestionIcons.{Binding Icon}}"/>

Следующий фрагмент - это класс для преобразования строки "App.Pictures.QuestionIcons.fire.png" в ImageSource

namespace App.Pictures
    {
        [Preserve(AllMembers = true)]
        [ContentProperty(nameof(Source))]
        public class ImageResourceExtension : IMarkupExtension
        {
            public string Source { get; set; }

            public object ProvideValue(IServiceProvider serviceProvider)
            {
                if (Source == null)
                    return null;

                //Output of this one would be:
                //"DoepkeLeitfaden.Pictures.QuestionIcons.{x:Binding Icon"
                Console.WriteLine(Source);

                // Do your translation lookup here, using whatever method you require
                var imageSource = ImageSource.FromResource(Source, typeof(ImageResourceExtension).GetTypeInfo().Assembly);

                return imageSource;
            }
        }

}

Заранее спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...