public void InitDetailController(bool bInit) { if (bInit) { object providerObject = _doc; if (_detailController is IMVCANDController) { ((IMVCANDController)_detailController).MadeDirty -= EhDetailsChanged; } _detailController = (IMVCAController)Current.Gui.GetControllerAndControl(new object[] { providerObject }, typeof(IMVCANController), UseDocument.Directly); if (null != _detailController && GetType() == _detailController.GetType()) // the returned controller is of this common type here -> thus no specialized controller seems to exist for this type of color provider { _detailController.Dispose(); _detailController = null; } if (_detailController is IMVCANDController) { ((IMVCANDController)_detailController).MadeDirty += EhDetailsChanged; } } if (null != _view) { _detailView = null == _detailController ? null : _detailController.ViewObject; _view.SetDetailView(_detailView); } }
private void DetachController(IMVCAController ctrl) { if (ctrl is IMVCANDController) { (ctrl as IMVCANDController).MadeDirty -= EhMadeDirty; if (ctrl is IDisposable) { ctrl.Dispose(); } } }