using System.Threading; using AIK.Common.Enum; using CommunityToolkit.Mvvm.ComponentModel; using CommunityToolkit.Mvvm.Input; using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using System.Text; using System.Threading.Tasks; namespace AIK.Views.UIViewModels { public partial class DialogMessageViewModel : ObservableObject { private readonly CancellationTokenSource _cts = new(); public CancellationToken CancellationToken => _cts.Token; [ObservableProperty] private string _title = "请稍候"; [ObservableProperty] private string _message = "处理中..."; [ObservableProperty] private MessageTypeEnum _messageType; [ObservableProperty] private string _iconPath = "\ue601"; [ObservableProperty] private string _iconForeground = "white"; [ObservableProperty] private bool _isCancelButtonVisible = true; public DialogMessageViewModel( string title = "处理中", string message = "处理中...", MessageTypeEnum typeEnum = MessageTypeEnum.Info, bool showCancel = true) { Title = title; Message = message; IsCancelButtonVisible = showCancel; MessageType = typeEnum; var (icon, color) = Common.IconString.MessageStyle.GetByType(typeEnum); IconPath = icon; IconForeground = color; } [RelayCommand] private void Cancel() { _cts.Cancel(); } } }