コード例 #1
0
        /// <summary>
        ///		Trata el evento de cierre de un documento
        /// </summary>
        private bool TreatEventCloseForm(PaneViewModel paneViewModel)
        {
            bool      canClose = true;
            IFormView formView = paneViewModel?.GetFormView();

            // Comprueba el ViewModel del control para comprobar si se puede cerrar
            if (formView != null && formView.FormView.ViewModel.IsUpdated)
            {
                SystemControllerEnums.ResultType result;

                // Pregunta si se debe grabar el documento
                result = Globals.HostController.ControllerWindow.ShowQuestionCancel("Se han realizado modificaciones que aún no se han grabado. ¿Desea grabarlas ahora?");
                // Graba el documento si es necesario
                if (result == SystemControllerEnums.ResultType.Yes)
                {
                    // Graba el documento
                    (formView.FormView.ViewModel as BaseFormViewModel)?.SaveCommand.Execute(null);
                    // Comprueba si se puede cerrar la ventana
                    canClose = !formView.FormView.IsUpdated;
                }
                else
                {
                    canClose = result != SystemControllerEnums.ResultType.Cancel;
                }
            }
            // Si se puede borrar, elimina la ventana de la colección
            if (canClose)
            {
                Documents.Remove(paneViewModel.WindowID);
                formView.FormView.CloseViewModel();
            }
            // Devuelve el valor que indica si se puede cerrar
            return(canClose);
        }
コード例 #2
0
 /// <summary>
 ///		Añade un documento a la lista de documentos tratados
 /// </summary>
 private void AddDocument(PaneViewModel paneViewModel)
 {
     // Añade el documento
     if (!ExistsDocument(paneViewModel.WindowID))
     {
         Documents.Add(paneViewModel.WindowID, paneViewModel);
     }
     // Asigna los manejadores de evento a la vista
     if (paneViewModel.ContentControl != null && paneViewModel.ContentControl is IFormView)
     {
         paneViewModel.LayoutPane.Closing += (sender, evntArgs) => evntArgs.Cancel = !TreatEventCloseForm(paneViewModel);
     }
     // Activa el documento
     ActiveDocument = paneViewModel;
 }
コード例 #3
0
 /// <summary>
 ///		Constructor
 /// </summary>
 public LayoutDockingEventArgs(PaneViewModel activeDocument)
 {
     ActiveDocument = activeDocument;
 }