0
我有我已綁定的「源」屬性頁面的相應的圖片「視圖模型」屬性名爲「捕捉」如下:沒有更新圖片來源動態
查看代碼:
<Image Height="150" HorizontalAlignment="Left" Margin="50,583,0,0" x:Name="img_FlickrPic" Stretch="Fill" VerticalAlignment="Top" Width="200" Grid.Row="1" Source="{Binding Capture}"/>
相應的視圖模型代碼
公共類SubmitViewModel:ViewModelBase {
private CameraCaptureTask cameraCapture;
public ImageSource Capture { get; set; }
public RelayCommand CaptureCommand { get; set; }
/// <summary>
/// Initializes a new instance of the SubmitViewModel class.
/// </summary>
public SubmitViewModel()
{
Capture = new BitmapImage();
CaptureCommand = new RelayCommand(() => CapturePhoto());
}
private object CapturePhoto()
{
cameraCapture = new CameraCaptureTask();
cameraCapture.Completed += cameraCapture_Completed;
cameraCapture.Show();
return null;
}
void cameraCapture_Completed(object sender, PhotoResult e)
{
if (e == null || e.TaskResult != TaskResult.OK)
{
return;
}
BitmapImage bitmap = new BitmapImage();
bitmap.SetSource(e.ChosenPhoto);
Capture = bitmap;
}
}
正如你所看到的,我已經爲視圖模型綁定了一個捕獲按鈕,並使用'behavior'而不是click事件來保持代碼的清潔。當我點擊按鈕時,相機被調用,一旦我點擊捕捉,然後按'接受'按鈕'cameraCapture_Completed'事件按預期觸發,並執行那裏的代碼。然而,設置'Capture'屬性(視圖上的圖像的Source屬性)的最後一步,我希望圖像能夠動態更新捕獲的照片。這不會發生。視圖模型繼承自'ViewModelBase',後者又實現INotifyPropertyChanged,所以不應該是一個問題。爲什麼用戶界面中的圖像沒有反映出'Capture'屬性的任何修改?我在這裏搞什麼?
謝謝!
Doh!萬分感謝 :) – Cranialsurge 2012-02-15 01:08:01