Files @ 7139c6e537fc
Branch filter:

Location: ATITD-Tools/Desert-Paint-Codex/Util/DialogUtil.cs

Malkyne
Added tag R_T10_1.7 for changeset 62d349a8db2f
using System.Threading.Tasks;
using Avalonia;
using Avalonia.Controls;
using Avalonia.Controls.ApplicationLifetimes;
using ReactiveUI;

namespace DesertPaintCodex.Util
{
    public static class DialogUtil
    {
        public static async Task ShowDialog<View, ViewModel, ReturnType>(
            InteractionContext<ViewModel, ReturnType> interaction) where View : Window, new()
        {
            if (Application.Current.ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop)
            {
                View       dialog = new() {DataContext = interaction.Input};
                ReturnType result = await dialog.ShowDialog<ReturnType>(desktop.MainWindow);
                interaction.SetOutput(result);
            }
        }
    }
}