feat: improve accessibility.
This commit is contained in:
@@ -637,6 +637,11 @@ public partial class MultiAutoCompleteBox : TemplatedControl, IInnerContentContr
|
||||
if (e.Key == Key.Down
|
||||
&& !this.IsAllowedXYNavigationMode(e.KeyDeviceType))
|
||||
{
|
||||
if (string.IsNullOrEmpty(TextBox?.Text))
|
||||
{
|
||||
UpdateTextValue(string.Empty, true);
|
||||
}
|
||||
RefreshView();
|
||||
SetCurrentValue(IsDropDownOpenProperty, true);
|
||||
e.Handled = true;
|
||||
}
|
||||
@@ -1101,7 +1106,7 @@ public partial class MultiAutoCompleteBox : TemplatedControl, IInnerContentContr
|
||||
{
|
||||
if (_popupHasOpened)
|
||||
{
|
||||
if (SelectionAdapter != null) SelectionAdapter.SelectedItem = null;
|
||||
// if (SelectionAdapter != null) SelectionAdapter.SelectedItem = null;
|
||||
if (DropDownPopup != null) DropDownPopup.IsOpen = false;
|
||||
OnDropDownClosed(System.EventArgs.Empty);
|
||||
}
|
||||
@@ -1564,7 +1569,10 @@ public partial class MultiAutoCompleteBox : TemplatedControl, IInnerContentContr
|
||||
/// <param name="e">The selection changed event data.</param>
|
||||
private void OnAdapterSelectionChanged(object? sender, SelectionChangedEventArgs e)
|
||||
{
|
||||
SelectedItems?.Add(_adapter?.SelectedItem);
|
||||
if (_valueBindingEvaluator is null) return;
|
||||
UpdateTextValue(_valueBindingEvaluator?.GetDynamicValue(_adapter?.SelectedItem), false);
|
||||
// SelectedItems?.Add(_adapter?.SelectedItem);
|
||||
|
||||
}
|
||||
|
||||
//TODO Check UpdateTextCompletion
|
||||
@@ -1579,6 +1587,7 @@ public partial class MultiAutoCompleteBox : TemplatedControl, IInnerContentContr
|
||||
|
||||
// Completion will update the selected value
|
||||
//UpdateTextCompletion(false);
|
||||
SelectedItems?.Add(_adapter?.SelectedItem);
|
||||
UpdateTextValue(string.Empty, false);
|
||||
|
||||
// Text should not be selected
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using System.Collections;
|
||||
using System.Diagnostics;
|
||||
using Avalonia;
|
||||
using Avalonia.Controls;
|
||||
using Avalonia.Controls.Primitives;
|
||||
@@ -16,9 +17,6 @@ public class MultiAutoCompleteSelectionAdapter : ISelectionAdapter
|
||||
/// </summary>
|
||||
private SelectingItemsControl? _selector;
|
||||
|
||||
private object? _previewSelectedItem;
|
||||
private object? _selectedItem;
|
||||
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the
|
||||
/// <see cref="T:Avalonia.Controls.Utils.SelectingItemsControlSelectionAdapter" />
|
||||
@@ -110,14 +108,13 @@ public class MultiAutoCompleteSelectionAdapter : ISelectionAdapter
|
||||
/// <value>The selected item of the underlying selection adapter.</value>
|
||||
public object? SelectedItem
|
||||
{
|
||||
get => _selectedItem;
|
||||
get => SelectorControl?.SelectedItem;
|
||||
|
||||
set
|
||||
{
|
||||
IgnoringSelectionChanged = true;
|
||||
if (SelectorControl != null)
|
||||
{
|
||||
_selectedItem = value;
|
||||
SelectorControl.SelectedItem = value;
|
||||
}
|
||||
// Attempt to reset the scroll viewer's position
|
||||
@@ -215,7 +212,9 @@ public class MultiAutoCompleteSelectionAdapter : ISelectionAdapter
|
||||
private void OnSelectionChanged(object? sender, SelectionChangedEventArgs e)
|
||||
{
|
||||
if (IgnoringSelectionChanged) return;
|
||||
_previewSelectedItem = SelectorControl?.SelectedItem;
|
||||
// SelectedItem = SelectorControl?.SelectedItem;
|
||||
SelectionChanged?.Invoke(this, e);
|
||||
// _previewSelectedItem = SelectorControl?.SelectedItem;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -258,6 +257,7 @@ public class MultiAutoCompleteSelectionAdapter : ISelectionAdapter
|
||||
/// </summary>
|
||||
internal void OnCommit()
|
||||
{
|
||||
/*
|
||||
if (_previewSelectedItem is null) return;
|
||||
SelectedItem = _previewSelectedItem;
|
||||
SelectionChanged?.Invoke(this,
|
||||
@@ -267,6 +267,7 @@ public class MultiAutoCompleteSelectionAdapter : ISelectionAdapter
|
||||
new List<object?> { SelectedItem }
|
||||
)
|
||||
);
|
||||
*/
|
||||
Commit?.Invoke(this, new RoutedEventArgs());
|
||||
AfterAdapterAction();
|
||||
}
|
||||
@@ -292,7 +293,6 @@ public class MultiAutoCompleteSelectionAdapter : ISelectionAdapter
|
||||
{
|
||||
SelectorControl.SelectedItem = null;
|
||||
SelectorControl.SelectedIndex = -1;
|
||||
_previewSelectedItem = null;
|
||||
}
|
||||
IgnoringSelectionChanged = false;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user