コード例 #1
0
 protected virtual void OnClosing(CloseAllMessage message)
 {
     if (!message.Cancel)
     {
         message.Cancel = !TryClose();
     }
 }
コード例 #2
0
        /// <summary>
        /// Used to close all opened documents and allows you to save unsaved results and to cancel closing.
        /// Since DocumentsViewModel is a POCO view model, an instance of this class will also expose the OnClosingCommand property that can be used as a binding source in views.
        /// </summary>
        /// <param name="cancelEventArgs">An argument of the System.ComponentModel.CancelEventArgs type which is used to cancel closing if needed.</param>
        public virtual void OnClosing(CancelEventArgs cancelEventArgs)
        {
            if (GroupedDocumentManagerService != null && GroupedDocumentManagerService.Groups.Count() > 1)
            {
                var activeGroup = GroupedDocumentManagerService.ActiveGroup;
                var message     = new CloseAllMessage(cancelEventArgs, vm =>
                {
                    var activeVMs = activeGroup.Documents.Select(d => d.Content);
                    return(activeVMs.Contains(vm));
                });
                Messenger.Default.Send(message);
                return;
            }
            //BluePrints Customization
            //SaveLogicalLayout();
            if (LayoutSerializationService != null)
            {
                PersistentLayoutHelper.PersistentViewsLayout[ViewLayoutName] = LayoutSerializationService.Serialize();
            }

            Messenger.Default.Send(new CloseAllMessage(cancelEventArgs, vm => true));
            PersistentLayoutHelper.SaveLayout();
        }