diff --git a/samples/ControlCatalog/MainView.xaml b/samples/ControlCatalog/MainView.xaml
index 2120b03b20..e19b563fb7 100644
--- a/samples/ControlCatalog/MainView.xaml
+++ b/samples/ControlCatalog/MainView.xaml
@@ -74,6 +74,9 @@
ScrollViewer.VerticalScrollBarVisibility="Disabled">
+
+
+
diff --git a/samples/ControlCatalog/Pages/DataValidationPage.axaml b/samples/ControlCatalog/Pages/DataValidationPage.axaml
new file mode 100644
index 0000000000..d46562addd
--- /dev/null
+++ b/samples/ControlCatalog/Pages/DataValidationPage.axaml
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/samples/ControlCatalog/Pages/DataValidationPage.axaml.cs b/samples/ControlCatalog/Pages/DataValidationPage.axaml.cs
new file mode 100644
index 0000000000..e38f85fec4
--- /dev/null
+++ b/samples/ControlCatalog/Pages/DataValidationPage.axaml.cs
@@ -0,0 +1,14 @@
+using Avalonia;
+using Avalonia.Controls;
+using Avalonia.Markup.Xaml;
+
+namespace ControlCatalog.Pages;
+
+public partial class DataValidationPage : UserControl
+{
+ public DataValidationPage()
+ {
+ InitializeComponent();
+ }
+}
+
diff --git a/samples/ControlCatalog/ViewModels/DataValidationViewModel.cs b/samples/ControlCatalog/ViewModels/DataValidationViewModel.cs
new file mode 100644
index 0000000000..3b2c37699c
--- /dev/null
+++ b/samples/ControlCatalog/ViewModels/DataValidationViewModel.cs
@@ -0,0 +1,45 @@
+using System;
+using System.ComponentModel;
+using System.ComponentModel.DataAnnotations;
+using MiniMvvm;
+
+namespace ControlCatalog.ViewModels;
+
+public class DataValidationViewModel : ViewModelBase
+{
+ private string? _DataAnnotationsSample;
+
+ [Required]
+ [EmailAddress]
+ [MinLength(5)]
+ public string? DataAnnotationsSample
+ {
+ get => _DataAnnotationsSample;
+ set => RaiseAndSetIfChanged(ref _DataAnnotationsSample, value);
+ }
+
+ public Func