private void UnbindCycle(ref IUnbindable controller) { try { var viewModel = (controller.ViewModel as IBaseViewModel); if (viewModel != null) { viewModel.Unbind(); viewModel.DisposeIfDisposable(); viewModel = null; } controller.Unbind(); controller.ViewModel.DisposeIfDisposable(); controller.ViewModel = null; var bindingContextOwner = controller as IMvxBindingContextOwner; if (bindingContextOwner != null) { bindingContextOwner?.ClearAllBindings(); } controller.DisposeIfDisposable(); controller = null; } catch {} }
public override void UnbindFrom(IUnbindable them) { base.UnbindFrom(them); IsBound = false; }