using System; using Avalonia.Controls; using CommunityToolkit.Mvvm.Messaging; using GazpromApp.Messages; using GazpromApp.ViewModels; namespace GazpromApp.Views; public partial class NewPointDialog : Window { public NewPointDialog() { InitializeComponent(); // done entering a new point WeakReferenceMessenger.Default.Register(this, static (w, m) => { w.Close(m.Point); }); // register to work with errors WeakReferenceMessenger.Default.Register(this, static (w, m) => { var dialog = new ErrorView { DataContext = m.Error }; m.Reply(dialog.ShowDialog(w)); }); } private void Window_OnClosed(object? sender, EventArgs e) { WeakReferenceMessenger.Default.Unregister(this); } }