using CommunityToolkit.Mvvm.ComponentModel; using CommunityToolkit.Mvvm.Input; using System.Windows; using XFEToolBox.Views.Pages.Popups; namespace XFEToolBox.ViewModel.Pages.Popups; public partial class NormalDialogPopupPageViewModel(NormalDialogPopupPage viewPage) : ObservableObject { [ObservableProperty] string confirmText = "确定"; [ObservableProperty] string yesText = "是"; [ObservableProperty] string noText = "否"; [ObservableProperty] string cancelText = "取消"; [ObservableProperty] GridLength confirmGridLength = new(0); [ObservableProperty] GridLength yesGridLength = new(0); [ObservableProperty] GridLength noGridLength = new(0); [ObservableProperty] GridLength cancelGridLength = new(0); [ObservableProperty] object? content; public NormalDialogPopupPage ViewPage { get; set; } = viewPage; [RelayCommand] void Confirm() { if (ViewPage.PopupWindow is null) throw new InvalidOperationException("无法找到父窗口,未在用户返回前设置PopupWindow"); ViewPage.PopupWindow.Result = MessageBoxResult.OK; ViewPage.PopupWindow.Close(); } [RelayCommand] void Yes() { if (ViewPage.PopupWindow is null) throw new InvalidOperationException("无法找到父窗口,未在用户返回前设置PopupWindow"); ViewPage.PopupWindow.Result = MessageBoxResult.Yes; ViewPage.PopupWindow.Close(); } [RelayCommand] void No() { if (ViewPage.PopupWindow is null) throw new InvalidOperationException("无法找到父窗口,未在用户返回前设置PopupWindow"); ViewPage.PopupWindow.Result = MessageBoxResult.No; ViewPage.PopupWindow.Close(); } [RelayCommand] void Cancel() { if (ViewPage.PopupWindow is null) throw new InvalidOperationException("无法找到父窗口,未在用户返回前设置PopupWindow"); ViewPage.PopupWindow.Result = MessageBoxResult.Cancel; ViewPage.PopupWindow.Close(); } }