diff --git a/demo/Ursa.Demo/Dialogs/DialogWithAction.axaml b/demo/Ursa.Demo/Dialogs/DialogWithAction.axaml
new file mode 100644
index 0000000..022fed8
--- /dev/null
+++ b/demo/Ursa.Demo/Dialogs/DialogWithAction.axaml
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/demo/Ursa.Demo/Dialogs/DialogWithAction.axaml.cs b/demo/Ursa.Demo/Dialogs/DialogWithAction.axaml.cs
new file mode 100644
index 0000000..783f47b
--- /dev/null
+++ b/demo/Ursa.Demo/Dialogs/DialogWithAction.axaml.cs
@@ -0,0 +1,13 @@
+using Avalonia;
+using Avalonia.Controls;
+using Avalonia.Markup.Xaml;
+
+namespace Ursa.Demo.Dialogs;
+
+public partial class DialogWithAction : UserControl
+{
+ public DialogWithAction()
+ {
+ InitializeComponent();
+ }
+}
\ No newline at end of file
diff --git a/demo/Ursa.Demo/Dialogs/DialogWithActionViewModel.cs b/demo/Ursa.Demo/Dialogs/DialogWithActionViewModel.cs
new file mode 100644
index 0000000..d5a3b58
--- /dev/null
+++ b/demo/Ursa.Demo/Dialogs/DialogWithActionViewModel.cs
@@ -0,0 +1,36 @@
+using System;
+using System.Windows.Input;
+using CommunityToolkit.Mvvm.ComponentModel;
+using CommunityToolkit.Mvvm.Input;
+using Ursa.Controls;
+
+namespace Ursa.Demo.Dialogs;
+
+public partial class DialogWithActionViewModel: ObservableObject, IDialogContext
+{
+ [ObservableProperty] private string _title;
+ [ObservableProperty] private DateTime _date;
+ public object? DefaultCloseResult { get; set; } = true;
+ public event EventHandler