CameraCaptureTask завершила событие, которое не срабатывает во ViewModel - PullRequest
1 голос
/ 15 февраля 2012

У меня есть простое приложение, которое имеет одну страницу с кнопкой, которая вызывает 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)» никогда не будет вызван. Я что-то здесь упускаю?

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

Ответы [ 2 ]

0 голосов
/ 15 февраля 2012

Используете ли вы инструменты WPConnect, когда делаете это с отладчиком И подключенным устройством?

http://msdn.microsoft.com/en-us/library/gg180729(v=VS.92).aspx

Windows Phone Connect Tool позволяет установить последовательное или USB-подключение к устройству без запуска программного обеспечения Zune. При тестировании приложения на физическом устройстве Windows Phone обычно запускается программное обеспечение Zune. Однако вы не можете тестировать приложения, которые взаимодействуют с задачами выбора фотографий и запуска камеры во время работы программного обеспечения Zune, поскольку оно блокирует локальную мультимедийную базу данных.

0 голосов
/ 15 февраля 2012

Почему вы передаете это, когда у вас есть только шоу?

Попробуйте переместить cameraCaptureTask из Конструктора в вызываемый метод

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