У меня есть простое приложение, которое имеет одну страницу с кнопкой, которая вызывает CameraCaptureTask в Windows Phone 7. Я использую шаблон MVVM для этого. Мой код чист, и я выгрузил отклик нажатия кнопки в ViewModel, используя поведения. Мой код выглядит так:
public class MainViewModel : ViewModelBase
{
private readonly CameraCaptureTask cameraCaptureTask;
/// <summary>
/// Initializes a new instance of the MainViewModel class.
/// </summary>
public MainViewModel()
{
if (IsInDesignMode)
{
// Code runs in Blend --> create design time data.
}
else
{
cameraCaptureTask = new CameraCaptureTask();
cameraCaptureTask.Completed += cameraCaptureTask_Completed;
CaptureCommand = new RelayCommand(() => CaptureImage());
}
}
public RelayCommand CaptureCommand { get; set; }
private void cameraCaptureTask_Completed(object sender, PhotoResult e)
{
if (e == null || e.TaskResult != TaskResult.OK)
{
return;
}
else
{
// TODO
}
}
private object CaptureImage()
{
cameraCaptureTask.Show();
return null;
}
}
Теперь, когда я запускаю свое приложение и нажимаю кнопку, которая привязывается к RelayCommand 'CaptureCommand', я бью свою точку останова в методе 'CaptureCommand ()', и она запускает метод Show () объекта CameraCaptureTask, в результате чего мой камера подходит к устройству успешно. Однако, как только я закончу фотографировать и нажму «Принять», обработчик события «cameraCaptureTask_Completed (object sender, Photoresult e)» никогда не будет вызван. Я что-то здесь упускаю?
Заранее спасибо!