summaryrefslogtreecommitdiff
path: root/ViewModels/Image/ImageLoadedViewModel.cs
diff options
context:
space:
mode:
authorDennis Brentjes <d.brentjes@gmail.com>2020-01-01 22:50:08 +0100
committerDennis Brentjes <d.brentjes@gmail.com>2020-01-01 22:50:08 +0100
commit2481d1857b08879a3d15e679a302667c7d8976f7 (patch)
treec8ae66b72a3469e65239c94d1d52795fb75700b2 /ViewModels/Image/ImageLoadedViewModel.cs
parentfbe866f7b26c10bb54d72c029f8c628988a90be2 (diff)
downloadavalar-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.cs26
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);
}
}
}