У меня есть изображение, которое я обязан свойство «источником» для данной страницы, соответствующее свойство «ViewModel» под названием «Capture» следующим образом:источник изображения не обновляется динамически
Просмотр Код:
<Image Height="150" HorizontalAlignment="Left" Margin="50,583,0,0" x:Name="img_FlickrPic" Stretch="Fill" VerticalAlignment="Top" Width="200" Grid.Row="1" Source="{Binding Capture}"/>
Соответствующий ViewModel код
общественного класса SubmitViewModel: ViewModelBase {
private CameraCaptureTask cameraCapture;
public ImageSource Capture { get; set; }
public RelayCommand CaptureCommand { get; set; }
/// <summary>
/// Initializes a new instance of the SubmitViewModel class.
/// </summary>
public SubmitViewModel()
{
Capture = new BitmapImage();
CaptureCommand = new RelayCommand(() => CapturePhoto());
}
private object CapturePhoto()
{
cameraCapture = new CameraCaptureTask();
cameraCapture.Completed += cameraCapture_Completed;
cameraCapture.Show();
return null;
}
void cameraCapture_Completed(object sender, PhotoResult e)
{
if (e == null || e.TaskResult != TaskResult.OK)
{
return;
}
BitmapImage bitmap = new BitmapImage();
bitmap.SetSource(e.ChosenPhoto);
Capture = bitmap;
}
}
Как вы заметили, я связал кнопку захвата с моделью просмотра, а также используя «поведение» вместо события щелчка, чтобы сохранить чистый код. Когда я нажимаю кнопку, камера вызывается и как только я нажимаю захват, а затем нажимаю кнопку «Принять», событие «cameraCapture_Completed» срабатывает, как ожидалось, и код там выполняется. Однако последний шаг, на котором задано свойство «Capture» (с которым связано свойство исходного изображения моего изображения в представлении), я ожидаю, что изображение будет динамически обновляться с захваченной фотографией. Этого не происходит. Модель viewmodel наследует от «ViewModelBase», которая, в свою очередь, реализует INotifyPropertyChanged, поэтому это не должно быть проблемой. Почему никакие изменения в свойстве 'Capture' не отражаются в изображении в пользовательском интерфейсе? Я что-то здесь путаю?
Спасибо!
Doh! Благодаря тонну :) – Cranialsurge