diff options
| author | Dennis Brentjes <d.brentjes@gmail.com> | 2020-01-01 22:50:08 +0100 |
|---|---|---|
| committer | Dennis Brentjes <d.brentjes@gmail.com> | 2020-01-01 22:50:08 +0100 |
| commit | 2481d1857b08879a3d15e679a302667c7d8976f7 (patch) | |
| tree | c8ae66b72a3469e65239c94d1d52795fb75700b2 /ViewModels/Image/ImageLoadedViewModel.cs | |
| parent | fbe866f7b26c10bb54d72c029f8c628988a90be2 (diff) | |
| download | avalar-2481d1857b08879a3d15e679a302667c7d8976f7.tar.gz avalar-2481d1857b08879a3d15e679a302667c7d8976f7.tar.bz2 avalar-2481d1857b08879a3d15e679a302667c7d8976f7.zip | |
Adds a working but slightly buggy pipeline implementation.
Diffstat (limited to 'ViewModels/Image/ImageLoadedViewModel.cs')
| -rw-r--r-- | ViewModels/Image/ImageLoadedViewModel.cs | 26 |
1 files changed, 20 insertions, 6 deletions
diff --git a/ViewModels/Image/ImageLoadedViewModel.cs b/ViewModels/Image/ImageLoadedViewModel.cs index f9e322c..0489ac1 100644 --- a/ViewModels/Image/ImageLoadedViewModel.cs +++ b/ViewModels/Image/ImageLoadedViewModel.cs @@ -1,23 +1,37 @@ -using Avalonia.Media.Imaging; +using Avalar.Models.Interfaces; +using Avalonia.Media.Imaging; +using Avalonia.Threading; using ReactiveUI; +using System; +using System.ComponentModel; namespace Avalar.ViewModels.Image { public class ImageLoadedViewModel : ReactiveObject { - public ImageLoadedViewModel(IBitmap bitmap) + private IImageModel m_ImageModel; + + public ImageLoadedViewModel(IBitmap bitmap, IImageModel imageModel) { Bitmap = bitmap; + m_ImageModel = imageModel ?? throw new ArgumentNullException(nameof(imageModel)); + + m_ImageModel.PropertyChanged += OnImageModelChanged; + } + + private void OnImageModelChanged(object sender, PropertyChangedEventArgs e) + { + Dispatcher.UIThread.InvokeAsync(() => + { + Bitmap = m_ImageModel.LatestResult; + }); } private IBitmap m_Bitmap; public IBitmap Bitmap { get => m_Bitmap; - set - { - this.RaiseAndSetIfChanged(ref m_Bitmap, value); - } + set => this.RaiseAndSetIfChanged(ref m_Bitmap, value); } } } |
