feat: add icon, improve demo.

This commit is contained in:
rabbitism
2024-01-11 22:00:17 +08:00
parent 5eeebb020f
commit ae4323d3fe
8 changed files with 168 additions and 54 deletions

View File

@@ -1,4 +1,6 @@
using System.Threading.Tasks;
using System;
using System.Collections.ObjectModel;
using System.Threading.Tasks;
using System.Windows.Input;
using CommunityToolkit.Mvvm.ComponentModel;
using CommunityToolkit.Mvvm.Input;
@@ -13,6 +15,22 @@ public class MessageBoxDemoViewModel: ObservableObject
public ICommand YesNoCommand { get; set; }
public ICommand YesNoCancelCommand { get; set; }
public ICommand OkCancelCommand { get; set; }
public ObservableCollection<MessageBoxIcon> Icons { get; set; }
private MessageBoxIcon _selectedIcon;
public MessageBoxIcon SelectedIcon
{
get => _selectedIcon;
set => SetProperty(ref _selectedIcon, value);
}
private MessageBoxResult _result;
public MessageBoxResult Result
{
get => _result;
set => SetProperty(ref _result, value);
}
public MessageBoxDemoViewModel()
{
@@ -21,30 +39,33 @@ public class MessageBoxDemoViewModel: ObservableObject
YesNoCommand = new AsyncRelayCommand(OnYesNoAsync);
YesNoCancelCommand = new AsyncRelayCommand(OnYesNoCancelAsync);
OkCancelCommand = new AsyncRelayCommand(OnOkCancelAsync);
Icons = new ObservableCollection<MessageBoxIcon>(
Enum.GetValues<MessageBoxIcon>());
SelectedIcon = MessageBoxIcon.None;
}
private async Task OnDefaultMessageAsync()
{
var result = await MessageBox.ShowAsync("Hello Message Box");
Result = await MessageBox.ShowAsync("Hello Message Box", icon: SelectedIcon);
}
private async Task OnOkAsync()
{
var result = await MessageBox.ShowAsync("Hello Message Box", "Hello", MessageBoxButton.OK);
Result = await MessageBox.ShowAsync("Hello Message Box", "Hello", icon: SelectedIcon, button:MessageBoxButton.OK);
}
private async Task OnYesNoAsync()
{
var result = await MessageBox.ShowAsync("Hello Message Box", "Hello", MessageBoxButton.YesNo);
Result = await MessageBox.ShowAsync("Hello Message Box", "Hello", icon: SelectedIcon, button: MessageBoxButton.YesNo);
}
private async Task OnYesNoCancelAsync()
{
var result = await MessageBox.ShowAsync("Hello Message Box", "Hello", MessageBoxButton.YesNoCancel);
Result = await MessageBox.ShowAsync("Hello Message Box", "Hello", icon: SelectedIcon, button: MessageBoxButton.YesNoCancel);
}
private async Task OnOkCancelAsync()
{
var result = await MessageBox.ShowAsync("Hello Message Box", "Hello", MessageBoxButton.OKCancel);
Result = await MessageBox.ShowAsync("Hello Message Box", "Hello", icon: SelectedIcon, button:MessageBoxButton.OKCancel);
}
}