Beispiel #1
0
        /// <summary>
        /// ファイルオープンダイアログ表示
        /// </summary>
        /// <param name="parameter"></param>
        /// <returns></returns>
        protected override FileOpenResult Show(FileOpenParameter parameter)
        {
            var dialog = new OpenFileDialog();

            dialog.Title            = parameter.Title;
            dialog.Filter           = parameter.Filter;
            dialog.InitialDirectory = parameter.InitialDirectory;
            var result = new FileOpenResult();

            if (dialog.ShowDialog() == true)
            {
                result.Result   = true;
                result.FilePath = dialog.FileName;
            }
            else
            {
                result.Result = false;
            }
            return(result);
        }
Beispiel #2
0
        public static FileOpenResult Show(FileOpenParameter parameter)
        {
            //メッセージボックスの結果
            var openResult = new FileOpenResult();

            //イベントを発行する
            Instance.ShowMessageBox?.Invoke(
                Instance,
                new DialogMessenger.EventArgs()
            {
                OpenParameter = parameter,

                //コールバックで結果を受け取る
                NotifyOpenResult = result =>
                {
                    openResult = result;
                }
            });

            return(openResult);
        }
Beispiel #3
0
            /// <summary>
            /// アクションの実態
            /// </summary>
            /// <param name="parameter"></param>
            protected override void Invoke(object parameter)
            {
                //イベント引数の種別を検査
                var messageBoxArgs = parameter as DialogMessenger.EventArgs;

                if (messageBoxArgs == null)
                {
                    return;
                }

                //メッセージボックスの表示結果を取得
                if (messageBoxArgs.Parameter != null)
                {
                    DialogResult result = Show(messageBoxArgs.Parameter);
                    //コールバックで結果を通知
                    messageBoxArgs.NotifyResult?.Invoke(result);
                }
                else if (messageBoxArgs.SaveParameter != null)
                {
                    FileSaveResult saveResult = Show(messageBoxArgs.SaveParameter);
                    //コールバックで結果を通知
                    messageBoxArgs.NotifySaveResult?.Invoke(saveResult);
                }
                else if (messageBoxArgs.OpenParameter != null)
                {
                    FileOpenResult openResult = Show(messageBoxArgs.OpenParameter);
                    //コールバックで結果を通知
                    messageBoxArgs.NotifyOpenResult?.Invoke(openResult);
                }
                else if (messageBoxArgs.HimmeiSearchParameter != null)
                {
                    HimmeiSearchResult openResult = Show(messageBoxArgs.HimmeiSearchParameter);
                    //コールバックで結果を通知
                    messageBoxArgs.NotifyHimmeiSearchResult?.Invoke(openResult);
                }
            }