XFEstudio/MyFirstRespo / XFEToolBox/ViewModel/Pages/Popups/AgreementDialogPopupPageViewModel.cs

using CommunityToolkit.Mvvm.ComponentModel;
using CommunityToolkit.Mvvm.Input;
using XFEToolBox.Utilities;
using XFEToolBox.Views.Controls;
using XFEToolBox.Views.Pages.Popups;

namespace XFEToolBox.ViewModel.Pages.Popups;

public partial class AgreementDialogPopupPageViewModel(AgreementDialogPopupPage viewPage) : ObservableObject
{
    [ObservableProperty]
    string agreementContent = "";
    [ObservableProperty]
    bool acceptButtonEnable = false;
    [ObservableProperty]
    bool readCheckButtonEnable = false;
    public AgreementDialogPopupPage ViewPage { get; set; } = viewPage;

    [RelayCommand]
    void Agree()
    {
        if (ViewPage.PopupWindow is not null)
        {
            if (AcceptButtonEnable)
            {
                ViewPage.PopupWindow.Result = System.Windows.MessageBoxResult.Yes;
                ViewPage.PopupWindow.Close();
            }
            else
            {
                PopupHelper.ShowConfirmDialog("请先阅读以上内容并勾选 “我已知晓” 选项!");
            }
        }
    }

    [RelayCommand]
    void Refuse()
    {
        if (ViewPage.PopupWindow is not null)
        {
            ViewPage.PopupWindow.Result = System.Windows.MessageBoxResult.No;
            ViewPage.PopupWindow.Close();
        }
    }

    [RelayCommand]
    void ReadCheck(CheckButton checkButton) => AcceptButtonEnable = checkButton.IsChecked is true;
}