不费一枪我有一个简单的应用程序有一个单一的页面调用中的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)”事件,永远不会被调用。我在这里错过了什么吗?
在此先感谢!
这做到了感谢!我只是玩弄不同的方式,尽可能保持代码的清洁。这可能是一个蹩脚的问题,但是,为什么在ViewModel的构造函数中实例化该对象是不够的? – Cranialsurge 2012-02-14 22:45:47
我相信它是因为相机尚未“加载”。直到Loaded事件被炒鱿鱼 – MyKuLLSKI 2012-02-14 22:58:06