次のようなインターフェイスがある場合:
public interface IImageService
{
ObservableCollection<PictureModel> RefreshSavedImages();
void PhotoChooserWithCameraServiceShow();
}
そして彼の実装は次のとおりです。
public class ImageService: IImageService
{
public ObservableCollection<PictureModel> RefreshSavedImages()
{
// Refreash images from library
}
public WriteableBitmap StreamToWriteableBitmap(Stream imageStream)
{
WriteableBitmap image = new WriteableBitmap(1024, 768);
image.SetSource(imageStream);
imageStream.Dispose();
return image;
}
public void PhotoChooserWithCameraServiceShow()
{
// PhotoChooserTask get source of image.
}
}
ViewModel に実装がある場合:
private readonly IImageService imageService;
public MainViewModel(IImageService imageService)
{
this.imageService = imageService;
}
private void MethodA()
{
// Choose Photo, I edited it and after saved it.
imageService.PhotoChooserWithCameraServiceShow();
// Refreash the library and Bind it in my ItemSource from my ListBox.
PictureList = imageService.RefreshSavedImages();
}
私の問題は、最初にこのメソッドを終了する必要があることです: imageService.PhotoChooserWithCameraServiceShow(); その後、imageService.RefreshSavedImages(); に進みます。
問題は、私のプログラムが行うことは、最初のプログラムが完了する前に 2 番目のプログラムを実行することです。
この問題を引き起こす可能性があると思われる問題:
ViewModel から、ロジックなしで NavigationService を呼び出して戻る。だからできない:
NavigationService ナビゲーション = 新しい NavigationService(); navigation.NavigateTo(new Uri("/Views/SecondPage.xaml", UriKind.Relative));
PhotoChooserWithCameraServiceShow は、Cimbalino Windows Phone Toolkitから取得されます。
みなさん、よろしくお願いします!