summaryrefslogtreecommitdiff
path: root/JVDesktop/App.axaml.cs
diff options
context:
space:
mode:
Diffstat (limited to 'JVDesktop/App.axaml.cs')
-rw-r--r--JVDesktop/App.axaml.cs47
1 files changed, 47 insertions, 0 deletions
diff --git a/JVDesktop/App.axaml.cs b/JVDesktop/App.axaml.cs
new file mode 100644
index 0000000..b1bc4c0
--- /dev/null
+++ b/JVDesktop/App.axaml.cs
@@ -0,0 +1,47 @@
+using Avalonia;
+using Avalonia.Controls.ApplicationLifetimes;
+using Avalonia.Data.Core;
+using Avalonia.Data.Core.Plugins;
+using System.Linq;
+using Avalonia.Markup.Xaml;
+using JVDesktop.ViewModels;
+using JVDesktop.Views;
+
+namespace JVDesktop;
+
+public partial class App : Application
+{
+ public override void Initialize()
+ {
+ AvaloniaXamlLoader.Load(this);
+ }
+
+ public override void OnFrameworkInitializationCompleted()
+ {
+ if (ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop)
+ {
+ // Avoid duplicate validations from both Avalonia and the CommunityToolkit.
+ // More info: https://docs.avaloniaui.net/docs/guides/development-guides/data-validation#manage-validationplugins
+ DisableAvaloniaDataAnnotationValidation();
+ desktop.MainWindow = new MainWindow
+ {
+ DataContext = new MainWindowViewModel(),
+ };
+ }
+
+ base.OnFrameworkInitializationCompleted();
+ }
+
+ private void DisableAvaloniaDataAnnotationValidation()
+ {
+ // Get an array of plugins to remove
+ var dataValidationPluginsToRemove =
+ BindingPlugins.DataValidators.OfType<DataAnnotationsValidationPlugin>().ToArray();
+
+ // remove each entry found
+ foreach (var plugin in dataValidationPluginsToRemove)
+ {
+ BindingPlugins.DataValidators.Remove(plugin);
+ }
+ }
+} \ No newline at end of file