Example #1
0
        //アプリ終了時
        public CommandResult CloseAllWindows()
        {
            try {
                _executingAllWindowClose = true;
                _preferences.WindowArray.Clear();
                //コピーのコレクションに対して実行しないといかん
                List <MainWindow> targets = new List <MainWindow>(_windows);
                foreach (MainWindow window in targets)
                {
                    CommandResult r = window.CancellableClose();
                    if (r != CommandResult.Succeeded)
                    {
                        return(r);                           //キャンセルされた場合はそこで中止
                    }
                    _preferences.FormatWindowPreference(window);
                }

                return(CommandResult.Succeeded);
            }
            finally {
                _executingAllWindowClose = false;
            }
        }