不費一槍我有一個簡單的應用程序有一個單一的頁面調用中的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