CameraCaptureTask完成事件视图模型
不费一枪我有一个简单的应用程序有一个单一的页面调用中的Windows Phone 7的CameraCaptureTask我使用MVVM模式为这个按钮。我后面的代码是干净的,我已经使用行为卸载了对ViewModel的按钮点击响应。我的代码如下所示:CameraCaptureTask完成事件视图模型
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;
}
}
现在,当我跑我的应用程序和命中结合到“CaptureCommand” RelayCommand按钮,我打我的“CaptureCommand)(”断点法,它触发“显示()'方法的CameraCaptureTask导致我的相机成功地在设备上。然而,一旦我完成拍照并点击“接受”,在“cameraCaptureTask_Completed(对象发件人,Photoresult E)”事件,永远不会被调用。我在这里错过了什么吗?
在此先感谢!
你为什么中继此当你有走过场?
尝试移动cameraCaptureTask出来的构造,并为调用的方法
您使用的是WPConnect工具,当你做到这一点与所连接的调试器和设备?
http://msdn.microsoft.com/en-us/library/gg180729(v=VS.92).aspx
的Windows Phone的连接工具可以帮助您建立串口或USB连接到设备不运行Zune软件。当您在物理Windows Phone设备上测试应用程序时,通常Zune软件正在运行。但是,你是不是能够测试Zune软件运行时,与照片选择器和摄像头发射任务进行交互的应用程序,因为它锁定本地媒体数据库。
我做的UI /组件不加载/可用,但后来我切换到使用模拟器来代替。那也行不通。 – Cranialsurge 2012-02-14 22:46:39
这做到了感谢!我只是玩弄不同的方式,尽可能保持代码的清洁。这可能是一个蹩脚的问题,但是,为什么在ViewModel的构造函数中实例化该对象是不够的? – Cranialsurge 2012-02-14 22:45:47
我相信它是因为相机尚未“加载”。直到Loaded事件被炒鱿鱼 – MyKuLLSKI 2012-02-14 22:58:06