From 26f9206b4b392d1ba0b5ed0527ea2752d973fbca Mon Sep 17 00:00:00 2001 From: Rutherther Date: Fri, 3 Feb 2023 09:34:25 +0100 Subject: [PATCH] feat: observe changes of filtered packets inside of source list subscription --- .../ViewModels/LogTabViewModel.cs | 20 ++++++------------- 1 file changed, 6 insertions(+), 14 deletions(-) diff --git a/src/PacketLogger/ViewModels/LogTabViewModel.cs b/src/PacketLogger/ViewModels/LogTabViewModel.cs index 1ea5251bafedf60623b8a2d465afdfbf2592e204..33217990542a67698ca7722b28b9915876d8cd69 100644 --- a/src/PacketLogger/ViewModels/LogTabViewModel.cs +++ b/src/PacketLogger/ViewModels/LogTabViewModel.cs @@ -64,23 +64,15 @@ public class LogTabViewModel : ViewModelBase, IDisposable .Bind(out _packets) .ObserveOn(RxApp.MainThreadScheduler) .DisposeMany() - .Subscribe(); - - var scrollSubscription = FilteredPackets.ObserveCollectionChanges() - .ObserveOn(RxApp.MainThreadScheduler) - .Do - ( - change => + .Subscribe(_ => + { + if (Scroll) { - if (Scroll && change.EventArgs.NewItems is not null) - { - RxApp.MainThreadScheduler.Schedule(DateTimeOffset.Now.AddMilliseconds(100), () => SelectedPacket = FilteredPackets[^1]); - } + RxApp.MainThreadScheduler.Schedule(DateTimeOffset.Now.AddMilliseconds(100), () => SelectedPacket = FilteredPackets[^1]); } - ) - .Subscribe(); + }); - _cleanUp = new CompositeDisposable(scrollSubscription, packetsSubscription); + _cleanUp = packetsSubscription; CopyPackets = ReactiveCommand.CreateFromObservable ( list => Observable.StartAsync