diff options
Diffstat (limited to 'ViewModels/Image')
| -rw-r--r-- | ViewModels/Image/ImageViewModel.cs | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/ViewModels/Image/ImageViewModel.cs b/ViewModels/Image/ImageViewModel.cs index 030a95b..3b41919 100644 --- a/ViewModels/Image/ImageViewModel.cs +++ b/ViewModels/Image/ImageViewModel.cs @@ -1,22 +1,27 @@ +using Avalar.Models.Interfaces; using Avalar.ViewModels.Image; using Avalar.Views; using Avalonia.Media.Imaging; using ReactiveUI; +using System; using System.Linq; namespace Avalar.Viewmodels.Image { public class ImageViewModel : ReactiveObject { - public ImageViewModel(IAvalarViewService viewService) + public ImageViewModel(IImageModel imageModel, IServiceProvider serviceProvider) { - ViewService = viewService; + ViewService = serviceProvider?.GetService(typeof(IAvalarViewService)) as IAvalarViewService; + ImageModel = imageModel; ChildViewModel = new ImageNotLoadedViewModel(ReactiveCommand.Create(OpenFile)); } private IAvalarViewService ViewService { get; } + private IImageModel ImageModel { get; } + private object m_ChildViewModel; public object ChildViewModel @@ -29,10 +34,10 @@ namespace Avalar.Viewmodels.Image public async void OpenFile() { - var result = await ViewService.ShowOpenImageFileDialog(); + var result = await ViewService.ShowOpenImageFileDialog().ConfigureAwait(true); if (result.Length != 1) return; - ChildViewModel = new ImageLoadedViewModel(new Bitmap(result.First())); + ChildViewModel = new ImageLoadedViewModel(ImageModel.LoadImage(result.First())); } } } |
