我有一个简单的应用程序,它有一个带有按钮的页面,该按钮调用Windows Phone 7中的CameraCaptureTask。我使用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;
}
}
现在,当我运行我的应用程序并点击绑定到'CaptureCommand'RelayCommand的按钮时,我在'CaptureCommand()'方法中点击了断点,它触发了CameraCaptureTask的'Show()'方法,导致了我的相机成功上映到设备上。但是,一旦我完成拍照并点击“接受”,就不会调用'cameraCaptureTask_Completed(object sender,Photoresult e)'事件处理程序。我在这里错过了什么吗?
提前致谢!
答案 0 :(得分:0)
为什么你在演出时转发这个?
尝试将cameraCaptureTask移出构造函数并移入调用的方法
答案 1 :(得分:0)
当您使用调试器和连接的设备执行此操作时,您是否正在使用WPConnect工具?
http://msdn.microsoft.com/en-us/library/gg180729(v=VS.92).aspx
Windows Phone Connect工具允许您在不运行Zune软件的情况下与设备建立串行或USB连接。在物理Windows Phone设备上测试应用程序时,通常Zune软件正在运行。但是,在Zune软件运行时,您无法测试与照片选择器和相机启动器任务交互的应用程序,因为它会锁定本地媒体数据库。