Jelajahi Sumber

#2355 'Select all' for SelectingItemsControl with platform hotkey configuration.

MonkAlex 6 tahun lalu
induk
melakukan
e38e49e7d0

+ 6 - 1
src/Avalonia.Controls/Primitives/SelectingItemsControl.cs

@@ -10,6 +10,7 @@ using Avalonia.Collections;
 using Avalonia.Controls.Generators;
 using Avalonia.Data;
 using Avalonia.Input;
+using Avalonia.Input.Platform;
 using Avalonia.Interactivity;
 using Avalonia.Styling;
 using Avalonia.VisualTree;
@@ -469,9 +470,13 @@ namespace Avalonia.Controls.Primitives
 
             if (!e.Handled)
             {
-                if (this.SelectionMode == SelectionMode.Multiple && e.Key == Key.A && e.Modifiers == InputModifiers.Control)
+                var keymap = AvaloniaLocator.Current.GetService<PlatformHotkeyConfiguration>();
+                bool Match(List<KeyGesture> gestures) => gestures.Any(g => g.Matches(e));
+
+                if (this.SelectionMode == SelectionMode.Multiple && Match(keymap.SelectAll))
                 {
                     SynchronizeItems(SelectedItems, Items?.Cast<object>());
+                    e.Handled = true;
                 }
             }
         }