csharpc-sharpdotnetxamlavaloniauicross-platformcross-platform-xamlavaloniaguimulti-platformuser-interfacedotnetcore
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
43 lines
1.7 KiB
43 lines
1.7 KiB
using System.Reactive;
|
|
using Avalonia.Controls.Notifications;
|
|
using ReactiveUI;
|
|
|
|
namespace ControlCatalog.ViewModels
|
|
{
|
|
class MainWindowViewModel : ReactiveObject
|
|
{
|
|
private IManagedNotificationManager _notificationManager;
|
|
|
|
public MainWindowViewModel(IManagedNotificationManager notificationManager)
|
|
{
|
|
_notificationManager = notificationManager;
|
|
|
|
ShowCustomManagedNotificationCommand = ReactiveCommand.Create(() =>
|
|
{
|
|
NotificationManager.Show(new NotificationViewModel(NotificationManager) { Title = "Hey There!", Message = "Did you know that Avalonia now supports Custom In-Window Notifications?" });
|
|
});
|
|
|
|
ShowManagedNotificationCommand = ReactiveCommand.Create(() =>
|
|
{
|
|
NotificationManager.Show(new Avalonia.Controls.Notifications.Notification("Welcome", "Avalonia now supports Notifications.", NotificationType.Information));
|
|
});
|
|
|
|
ShowNativeNotificationCommand = ReactiveCommand.Create(() =>
|
|
{
|
|
NotificationManager.Show(new Avalonia.Controls.Notifications.Notification("Error", "Native Notifications are not quite ready. Coming soon.", NotificationType.Error));
|
|
});
|
|
}
|
|
|
|
public IManagedNotificationManager NotificationManager
|
|
{
|
|
get { return _notificationManager; }
|
|
set { this.RaiseAndSetIfChanged(ref _notificationManager, value); }
|
|
}
|
|
|
|
public ReactiveCommand<Unit, Unit> ShowCustomManagedNotificationCommand { get; }
|
|
|
|
public ReactiveCommand<Unit, Unit> ShowManagedNotificationCommand { get; }
|
|
|
|
public ReactiveCommand<Unit, Unit> ShowNativeNotificationCommand { get; }
|
|
}
|
|
}
|
|
|