Плагин MVVM Media не отображает изображение - PullRequest
0 голосов
/ 12 июля 2020

Мне нужна помощь с медиа-плагином. Я вижу, что фотография сделана, но она не отображается на странице содержимого. Во время отладки приложения я вижу путь, но изображения нет. Я пытался следовать этому решению, Xamarin Forms MVVM (Prism) с Media.Plugin - Как получить сделанное изображение из хранилища устройства И это решение Захват и обновление источника изображения с помощью MVVM в Xamarin , но все равно ничего. Моя привязка отлично работает со всем. Просто не знаю как получить изображение

 <Image
                                    x:Name="Photo"
                                    Grid.Row="2"
                                    HeightRequest="100"
                                    Source="{Binding postViewModel.ImageSource}"
                                    VerticalOptions="Start" />

ViewModel

Ctor

 public PostViewModel()
        {
            TakePictureCommand = new Command(async () => await TakePicture());
        }


private async Task TakePicture()
        {
            await Permission();
            var imageSource = await DependencyService.Get<IMessage>().ShowActionSheet(AppResources.AlertPhoto, AppResources.AlertNewPhoto, AppResources.AlertGallery);
            if (imageSource == AppResources.AlertNewPhoto)
            {
                var imageFileName = await CrossMedia.Current.TakePhotoAsync(new StoreCameraMediaOptions()
                {
                    Name = $"{DateTime.UtcNow}.jpg",
                    DefaultCamera = Plugin.Media.Abstractions.CameraDevice.Rear,
                    PhotoSize = PhotoSize.Medium,
                    SaveToAlbum = true
                });
                if (imageFileName == null)
                {
                    DependencyService.Get<IMessage>().LongAlert(AppResources.AlertNoAcess);
                }
                else
                {
                 
                    ImageSource = ImageSource.FromStream(() => imageFileName.GetStream());
                    var test = ImageSource;
                }
                

            }

Master VM BInding

   protected override void OnAppearing()
        {
            base.OnAppearing();
            BindingContext = MasterPostsView= new MasterPostsViewModel();
   
        }

  class MasterPostsViewModel : BaseViewModel
    {
        public PostViewModel postViewModel { get; set; }
        public CategoriesViewModel categoriesViewModel { get; set; }

        public MasterPostsViewModel(INavigation navigation)
        {
            postViewModel = new PostViewModel();

            categoriesViewModel = new CategoriesViewModel();
           
        }
    }

Have tried also
  public string ImageSource { get => _imageSource; set { _imageSource = value; OnPropertyChanged(); } }

 ImageSource = imageFileName.AlbumPath;

 
I have 
     protected virtual void OnPropertyChanged([CallerMemberName]string propertyName = null)
            {
                PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
            }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...