Вы должны реализовать интерфейс INotifyPropertyChanged в вашей ViewModel или Model:
ViewModels обычно реализует интерфейс INotifyPropertyChanged, что означает, что класс вызывает событие PropertyChanged всякий раз, когда изменяется одно из его свойств. Механизм привязки данных в Xamarin.Forms присоединяет обработчик к этому событию PropertyChanged, чтобы он мог получать уведомления об изменении свойства и обновлять цель с новым значением.
public class myViewModel : INotifyPropertyChanged {
public event PropertyChangedEventHandler PropertyChanged;
public Command SelectPictureCommand { get; }
public ImageSource itemPic { get; set; }
public ImageSource ItemPic
{
set
{
if (itemPic != value)
{
itemPic = value;
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs("ItemPic"));
}
}
}
get
{
return itemPic;
}
}
public myViewModel() {
SelectPictureCommand = new Command(execute: async () =>
{
//if (IsBusy)
//{
// return;
//}
//IsBusy = true;
try
{
Stream stream = await DependencyService.Get<IPhotoPickerService>().GetImageStreamAsync();
if (stream != null)
{
ItemPic = ImageSource.FromStream(() => stream);
}
}
catch (Exception ex)
{
Debug.WriteLine(ex);
}
finally
{
//IsBusy = false;
}
});
}
}
Я загрузил образец здесь и вы можете проверить. Не стесняйтесь задавать мне любые проблемы, если у вас есть.