using Avalonia.Controls; using Avalonia.Interactivity; namespace OTSSignsOrchestrator.Desktop.Views; /// /// A simple Yes/No confirmation dialog that can be shown modally. /// Use for a convenient one-liner. /// public partial class ConfirmationDialog : Window { public bool Result { get; private set; } public ConfirmationDialog() { InitializeComponent(); } public ConfirmationDialog(string title, string message) : this() { TitleText.Text = title; MessageText.Text = message; Title = title; ConfirmButton.Click += OnConfirmClicked; CancelButton.Click += OnCancelClicked; } private void OnConfirmClicked(object? sender, RoutedEventArgs e) { Result = true; Close(); } private void OnCancelClicked(object? sender, RoutedEventArgs e) { Result = false; Close(); } /// /// Shows a modal confirmation dialog and returns true if the user confirmed. /// public static async Task ShowAsync(Window owner, string title, string message) { var dialog = new ConfirmationDialog(title, message); await dialog.ShowDialog(owner); return dialog.Result; } }