/
dOJer113
/
Insect
Обзор
Документация
Войти
/
dOJer113
/
Insect
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
UI/Views/MainWindow.axaml.cs
43 строки
1 KB
aleks
Lab 6
14 дек 2025, 19:25
14 дек 2025, 19:25
2ed295a
Код
Авторство
О чём код?
using System.Threading.Tasks; using System.Reactive.Disposables; using Avalonia.Controls; using Avalonia.ReactiveUI; using insects; using UI.ViewModels; using UI.ViewModels.EditInsect; using UI.Views.EditWindows; using ReactiveUI; namespace UI.Views; public partial class MainWindow : ReactiveWindow<MainWindowViewModel> { public MainWindow() { InitializeComponent(); this.WhenActivated(disposables => { ViewModel!.ShowEditInsectDialog.RegisterHandler(ShowDialogAsync).DisposeWith(disposables); }); } private async Task ShowDialogAsync(IInteractionContext<ViewModelBase, Insect?> interaction) { Window? dialog = interaction.Input switch { EditLadybugViewModel vm => new EditLadybugWindow { DataContext = vm }, EditNecrophagesViewModel vm => new EditNecrophagesWindow { DataContext = vm }, _ => null }; if (dialog is null) { interaction.SetOutput(null); return; } var result = await dialog.ShowDialog<Insect?>(this); interaction.SetOutput(result); } }