using System.Threading.Tasks; using Avalonia; using Avalonia.Controls; using Avalonia.Platform.Storage; using CommunityToolkit.Mvvm.Messaging; using CrossLangDevStudio.Messages; using CrossLangDevStudio.ViewModels; namespace CrossLangDevStudio.Views; public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); if (Design.IsDesignMode) return; // Whenever 'Send(new PurchaseAlbumMessage())' is called, invoke this callback on the MainWindow instance: WeakReferenceMessenger.Default.Register(this, static (w, m) => { // Create an instance of MusicStoreWindow and set MusicStoreViewModel as its DataContext. var dialog = new NewProjectDialog { DataContext = new NewProjectDialogViewModel() }; // Show dialog window and reply with returned AlbumViewModel or null when the dialog is closed. m.Reply(dialog.ShowDialog(w)); }); WeakReferenceMessenger.Default.Register(this, static (w, m) => { m.Reply(w); } ); } }