diff options
Diffstat (limited to 'ViewModels/Image/ImageViewModel.cs')
| -rw-r--r-- | ViewModels/Image/ImageViewModel.cs | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/ViewModels/Image/ImageViewModel.cs b/ViewModels/Image/ImageViewModel.cs new file mode 100644 index 0000000..030a95b --- /dev/null +++ b/ViewModels/Image/ImageViewModel.cs @@ -0,0 +1,38 @@ + +using Avalar.ViewModels.Image; +using Avalar.Views; +using Avalonia.Media.Imaging; +using ReactiveUI; +using System.Linq; + +namespace Avalar.Viewmodels.Image +{ + public class ImageViewModel : ReactiveObject + { + public ImageViewModel(IAvalarViewService viewService) + { + ViewService = viewService; + ChildViewModel = new ImageNotLoadedViewModel(ReactiveCommand.Create(OpenFile)); + } + + private IAvalarViewService ViewService { get; } + + private object m_ChildViewModel; + + public object ChildViewModel + { + get => m_ChildViewModel; + set { + this.RaiseAndSetIfChanged(ref m_ChildViewModel, value); + } + } + + public async void OpenFile() + { + var result = await ViewService.ShowOpenImageFileDialog(); + if (result.Length != 1) return; + + ChildViewModel = new ImageLoadedViewModel(new Bitmap(result.First())); + } + } +} |
