Skip to content

Commit

Permalink
fix Subscription not being disposed (#3105)
Browse files Browse the repository at this point in the history
Co-authored-by: Glenn <5834289+glennawatson@users.noreply.github.com>
  • Loading branch information
ChrisPulman and glennawatson authored Dec 11, 2021
1 parent 80e3226 commit 7d9d096
Showing 1 changed file with 8 additions and 6 deletions.
14 changes: 8 additions & 6 deletions src/ReactiveUI.Uwp/Common/ViewModelViewHost.cs
Original file line number Diff line number Diff line change
Expand Up @@ -105,15 +105,17 @@ public ViewModelViewHost()

var contractChanged = this.WhenAnyObservable(x => x.ViewContractObservable).Do(x => _viewContract = x).StartWith(ViewContract);
var viewModelChanged = this.WhenAnyValue(x => x.ViewModel).StartWith(ViewModel);

contractChanged
.ObserveOn(RxApp.MainThreadScheduler)
.Subscribe(x => _viewContract = x ?? string.Empty);

var vmAndContract = contractChanged
.CombineLatest(viewModelChanged, (contract, vm) => (ViewModel: vm, Contract: contract));

this.WhenActivated(d => d(vmAndContract.DistinctUntilChanged().Subscribe(x => ResolveViewForViewModel(x.ViewModel, x.Contract))));
this.WhenActivated(d =>
{
d(contractChanged
.ObserveOn(RxApp.MainThreadScheduler)
.Subscribe(x => _viewContract = x ?? string.Empty));

d(vmAndContract.DistinctUntilChanged().Subscribe(x => ResolveViewForViewModel(x.ViewModel, x.Contract)));
});
}

/// <summary>
Expand Down

0 comments on commit 7d9d096

Please sign in to comment.