public static IDisposable BindPopup( this MainWindowModel model, IPopupController popupController) { model.PopupModel = PopupModel.Hidden(); var trigger = (popupController as PopupController)?.Trigger; if (trigger != null) { return(trigger .SubscribeOn(RxApp.TaskpoolScheduler) .ObserveOn(RxApp.MainThreadScheduler) .Accept(context => { model.PopupModel = context == null ? PopupModel.Hidden() : new PopupModel(context); })); } return(Disposable.Empty); }