public static MessageBoxWindowResult Show(MessageBoxViewModel viewModel) { MessageBoxWindow window = new MessageBoxWindow(); window.ViewModel = viewModel; if (viewModel.IsDialog) window.ShowDialog(); else window.Show(); return window.ViewModel.Result; }
public void SetViewModel(MessageBoxViewModel viewModel) { if (viewModel != null) { LayoutRoot.SetBinding(FrameworkElement.DataContextProperty, new Binding() { Source = ViewModel }); switch (viewModel.Buttons) { case MessageBoxWindowButtons.OK: btnOK.Visibility = System.Windows.Visibility.Visible; btnYes.Visibility = System.Windows.Visibility.Collapsed; btnNo.Visibility = System.Windows.Visibility.Collapsed; btnCancel.Visibility = System.Windows.Visibility.Collapsed; break; case MessageBoxWindowButtons.OKCancel: btnOK.Visibility = System.Windows.Visibility.Visible; btnYes.Visibility = System.Windows.Visibility.Collapsed; btnNo.Visibility = System.Windows.Visibility.Collapsed; btnCancel.Visibility = System.Windows.Visibility.Visible; break; case MessageBoxWindowButtons.YesNo: btnOK.Visibility = System.Windows.Visibility.Collapsed; btnYes.Visibility = System.Windows.Visibility.Visible; btnNo.Visibility = System.Windows.Visibility.Visible; btnCancel.Visibility = System.Windows.Visibility.Collapsed; break; case MessageBoxWindowButtons.YesNoCancel: btnOK.Visibility = System.Windows.Visibility.Collapsed; btnYes.Visibility = System.Windows.Visibility.Visible; btnNo.Visibility = System.Windows.Visibility.Visible; btnCancel.Visibility = System.Windows.Visibility.Visible; break; default: break; } } }
void MessageBoxWindow_DataContextChanged(object sender, System.Windows.DependencyPropertyChangedEventArgs e) { if (e.NewValue.GetType().Equals(typeof(MessageBoxViewModel))) this.ViewModel = e.NewValue as MessageBoxViewModel; }
/// <summary> // 유효성 검사 결과의 메시지 상자를 표시합니다. /// </summary> /// <param name="ex">표시할 유효성 검사 결과 개체</param> public static MessageBoxWindowResult Show(RuleViolation ruleViolation) { RuleViolation rule = ruleViolation; MessageBoxViewModel viewModel = new MessageBoxViewModel() { Caption = "Error", Header = String.Format("{0}이(가) 유효하지 않습니다.", rule.PropertyName), HeaderIcon = MessageBoxWindowIcons.Warning, Description = rule.ErrorMessage }; return Show(viewModel); }
/// <summary> // 유효성 검사 결과의 메시지 상자를 표시합니다. /// </summary> /// <param name="ex">표시할 유효성 검사결과의 열거형 리스트입니다.</param> public static MessageBoxWindowResult Show(IEnumerable<RuleViolation> ruleViolations) { RuleViolation rule = ruleViolations.First(); MessageBoxViewModel viewModel = new MessageBoxViewModel() { Caption = "Error", Header = String.Format("{0}이(가) 유효하지 않습니다.", rule.PropertyName), HeaderIcon = MessageBoxWindowIcons.Warning, Description = rule.ErrorMessage }; foreach (var item in ruleViolations) { viewModel.Details += String.Format("[{0}] : {1}\n", rule.PropertyName, rule.ErrorMessage); } return Show(viewModel); }
/// <summary> /// ViewModel을 사용한 메세지 상자를 표시합니다. /// </summary> /// <param name="viewModel">Yuhan.WPF.MessageBox.MessageBoxViewModel</param> /// <returns>Yuhan.WPF.MessageBox.MessageBoxWindowResult 값 중 하나입니다.</returns> public static MessageBoxWindowResult Show(MessageBoxViewModel viewModel) { return MessageBoxWindow.Show(viewModel); }