private void RegisterViewModelUnload(FrameworkElement pageElement, IViewModel viewModel) { pageElement.ObserveUnloaded() .SubscribeOn(_dispatcherScheduler) .ObserveOn(ThreadPoolScheduler.Instance) .SelectMany(async (_, ct) => { await viewModel.Unload(ct); return Unit.Default; }) .Subscribe(_ => { }, e => { }) .DisposeWith(viewModel.LongDisposables); }