【发布时间】:2011-10-27 07:21:54
【问题描述】:
我正在尝试将 WP7.1 Mango 中的任务启动器与最新版本的 Caliburn Micro 一起使用,但任务完成后我的代码不会被回调。可能我在某处做一些愚蠢的事情,但我看不到在哪里。这是我为您可以下载的示例重现应用程序所做的:
http://www.filesonic.com/file/2750397005/PhoneTaskTest.zip
1) 创建一个新的 WP7.1 应用程序;
2)在解决方案中添加一个Lib文件夹,在那里添加CM dll,并添加对它们的引用;
3) 按照 CM 文档的说明更改生成的文件并添加引导程序。
到目前为止,一切正常,应用程序启动时没有问题。然后我执行以下操作来拍照:
4) 在视图的主页面中添加一个按钮,并在其 VM 中添加一个相应的方法,名为 TakePhoto。
5) 如下更改虚拟机:
a) 在构造函数中注入一个只读的IEventAggregator 成员;
b) 添加 OnActivate/OnDeactivate 覆盖以让聚合器订阅和取消订阅此 VM;
c) 添加 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 方法永远不会被调用。您可以在那里放置一个断点来确认这一点。 那么,我在这里做错了什么?
【问题讨论】:
标签: windows-phone-7 caliburn.micro