diff --git a/dotnet-avalonia/App.axaml.cs b/dotnet-avalonia/App.axaml.cs index f0b9f63..a521812 100644 --- a/dotnet-avalonia/App.axaml.cs +++ b/dotnet-avalonia/App.axaml.cs @@ -1,9 +1,6 @@ using System; using Avalonia; using Avalonia.Controls.ApplicationLifetimes; -using Avalonia.Data.Core; -using Avalonia.Data.Core.Plugins; -using System.Linq; using Avalonia.Markup.Xaml; using dnd.Services; using dnd.ViewModels; @@ -27,9 +24,8 @@ 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(); + // DataAnnotations validation is opt-in since Avalonia 12 (AppBuilder.WithDataAnnotationsValidation), + // so it no longer has to be removed to avoid duplicate validation with the CommunityToolkit. desktop.MainWindow = new MainWindow { DataContext = new MainWindowViewModel(), @@ -42,17 +38,4 @@ public override void OnFrameworkInitializationCompleted() base.OnFrameworkInitializationCompleted(); } - - private void DisableAvaloniaDataAnnotationValidation() - { - // Get an array of plugins to remove - var dataValidationPluginsToRemove = - BindingPlugins.DataValidators.OfType().ToArray(); - - // remove each entry found - foreach (var plugin in dataValidationPluginsToRemove) - { - BindingPlugins.DataValidators.Remove(plugin); - } - } } \ No newline at end of file diff --git a/dotnet-avalonia/Views/MainWindow.axaml.cs b/dotnet-avalonia/Views/MainWindow.axaml.cs index 6156b85..ac37e66 100644 --- a/dotnet-avalonia/Views/MainWindow.axaml.cs +++ b/dotnet-avalonia/Views/MainWindow.axaml.cs @@ -18,7 +18,7 @@ public MainWindow() private void DragOver(object? sender, DragEventArgs e) { - var hasFiles = e.Data.Contains(DataFormats.Files); + var hasFiles = e.DataTransfer.Contains(DataFormat.File); e.DragEffects = hasFiles ? DragDropEffects.Copy : DragDropEffects.None; SetDragOver(hasFiles); } @@ -31,7 +31,7 @@ private void DragLeave(object? sender, DragEventArgs e) private void Drop(object? sender, DragEventArgs e) { SetDragOver(false); - var files = e.Data.GetFiles(); + var files = e.DataTransfer.TryGetFiles(); if (files != null && DataContext is MainWindowViewModel vm) vm.DropCommand.Execute(files); } diff --git a/dotnet-avalonia/dnd.csproj b/dotnet-avalonia/dnd.csproj index dca2e4e..264623c 100644 --- a/dotnet-avalonia/dnd.csproj +++ b/dotnet-avalonia/dnd.csproj @@ -14,16 +14,11 @@ - - - - - - - None - All - - - + + + + + +