/// <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); }
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); }
/// <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); } }