/// <summary> /// MessageKey 添付プロパティ変更イベントハンドラ /// </summary> /// <param name="sender">イベント発行元</param> /// <param name="e">イベント引数</param> private static void OnMessageKeyPropertyChanged(DependencyObject sender, DependencyPropertyChangedEventArgs e) { var w = sender as Window ?? Window.GetWindow(sender); var key = GetMessageKey(sender); var oldKey = e.OldValue as string; var newKey = e.NewValue as string; if (!string.IsNullOrEmpty(oldKey)) { // メッセージ登録解除 InteractionMessageListener.Unregister(oldKey); } if (!string.IsNullOrEmpty(newKey)) { // メッセージ登録 InteractionMessageListener.Register(newKey, message => { var m = message as SaveFileDialogMessage; if (m == null) { throw new Exception("メッセージが " + message.GetType().FullName + " クラスです。YKToolkit.Controls.Behaviors.InteractionSaveFileDialogMessageBehavior クラスで扱えるメッセージは YKToolkit.Controls.SaveFileDialogMessage クラスまたはその派生クラスです。"); } var dlg = new SaveFileDialog(); dlg.Title = m.Caption; dlg.FileName = m.FileName; dlg.Filter = m.FileFilter; var result = dlg.ShowDialog(w); return((result.HasValue && result.Value) ? dlg.FileName : null); }); } }
/// <summary> /// MessageKey 添付プロパティ変更イベントハンドラ /// </summary> /// <param name="sender">イベント発行元</param> /// <param name="e">イベント引数</param> private static void OnMessageKeyPropertyChanged(DependencyObject sender, DependencyPropertyChangedEventArgs e) { var w = sender as Window ?? Window.GetWindow(sender); var key = GetMessageKey(sender); var oldKey = e.OldValue as string; var newKey = e.NewValue as string; if (!string.IsNullOrEmpty(oldKey)) { // メッセージ登録解除 InteractionMessageListener.Unregister(oldKey); } if (!string.IsNullOrEmpty(newKey)) { // メッセージ登録 InteractionMessageListener.Register(newKey, message => { var m = message as DialogMessage; if (m == null) { throw new Exception("メッセージが " + message.GetType().FullName + " クラスです。YKToolkit.Controls.Behaviors.InteractionDialogMessageBehavior クラスで扱えるメッセージは YKToolkit.Controls.DialogMessage クラスまたはその派生クラスです。"); } return(YKToolkit.Controls.MessageBox.Show(m.Location == WindowStartupLocation.CenterOwner ? w : null, m.Message, m.Caption, m.DialogButton, m.DialogImage, m.ButtonCaptions)); }); } }