Я пытаюсь использовать средство запуска задач в WP7.1 Mango с последней версией Caliburn Micro, но мой код не перезванивается после завершения задачи. Возможно, я где-то делаю глупости, но не вижу где. Вот что я сделал для примера приложения для воспроизведения, которое вы можете скачать с:
http://www.filesonic.com/file/2750397005/PhoneTaskTest.zip
1) создать новое приложение WP7.1;
2) добавить папку Lib в решение, добавить туда CM dll и добавить ссылку на них;
3) изменить сгенерированные файлы, как указано в документации CM, и добавить загрузчик.
Теперь до этого момента все в порядке, и приложение запускается без проблем. Затем я делаю следующее:
4) добавить кнопку на главной странице в представление и соответствующий метод в ее виртуальной машине с именем TakePhoto .
5) изменить ВМ следующим образом:
a) добавить элемент readonly IEventAggregator , внедренный в конструктор;
б) добавить OnActivate / OnDeactivate переопределения, чтобы агрегатор мог подписаться и отписаться от этой виртуальной машины;
в) добавьте метод TakePhoto , который просто:
_aggregator.RequestTask<CameraCaptureTask>();
d) извлечь виртуальную машину из интерфейса IHandle > и реализовать ее:
public void Handle(TaskCompleted<CameraCaptureTask> message)
{
if (message.Result.TaskEventArgs.TaskResult != TaskResult.OK) return;
SetPhoto(message.Result.TaskEventArgs.ChosenPhoto);
}
Теперь, когда я нажимаю кнопку, в эмуляторе запускается задача камеры, и я могу сделать фотографию; Затем я возвращаюсь в свое приложение, но ничего не происходит, и мой метод Handle НИКОГДА не вызывается. Вы можете просто установить точку останова, чтобы подтвердить это.
Итак, что я здесь делаю не так?