/// <summary> /// When user clicks on Delete selected Image button, call comes here. /// </summary> private void OnDeleteSelectedImage() { //Start- Remove the ImageControl being deleted from View, Pathdictionary, ImagecontrolControllerList, its state from model. PclsMainWindowView.ImageCanvas.Children.Remove(ActiveImageControlController.GetView()); _dctImagePaths.Remove(ActiveImageControlController.GetHashCode()); ImageControlControllerList.Remove(ActiveImageControlController); PclsMainWindowModel.DeleteFilterStateFromDataTable(ActiveImageControlController.GetHashCode()); //End- Remove the ImageControl being deleted from View, Pathdictionary, ImagecontrolControllerList //Start- Destroy the object. ActiveImageControlController.ClearData(); ActiveImageControlController = null; //End- Destroy the object. //Start- Set any other image control controller as selected or reset everything to default. if (ImageControlControllerList.Count > 0) { _activeImageControlController = ImageControlControllerList.Last(); _activeImageControlController.RegisterImageControlEvents(); _activeImageControlController.Notify("UpdateImageControlStyle", null); _activeImageControlController.SetSelectedState(emSelectedState.Selected); PclsMainWindowView.FileNameTextBox.Text = _dctImagePaths[ActiveImageControlController.GetHashCode()]; PclsMainWindowModel.ImportFilterStateToModel(ActiveImageControlController.GetHashCode()); } else { PclsMainWindowModel.SetDefaultModelState(); PclsMainWindowView.FileNameTextBox.Text = ""; PclsMainWindowViewModel.OnPropertyChange("IsImageOperationsPanelEnabled"); PclsMainWindowViewModel.OnPropertyChange("IsDeleteButtonEnabled"); } //End- Set any other image control controller as selected or reset everything to default. }
/// <summary> /// Called on application exit to clear all the references. /// </summary> public override void ClearData() { foreach (ImageControlController obj in ImageControlControllerList) { obj.ClearData(); } ImageControlControllerList.Clear(); _dctImagePaths.Clear(); _activeImageControlController = null; PclsMainWindowView.ClearData(); PclsMainWindowViewModel.ClearData(); PclsMainWindowModel.ClearData(); base.ClearData(); }