diff --git a/src/Ursa.Themes.Semi/Controls/MultiAutoCompleteBox.axaml b/src/Ursa.Themes.Semi/Controls/MultiAutoCompleteBox.axaml
index b406c69..6801ee4 100644
--- a/src/Ursa.Themes.Semi/Controls/MultiAutoCompleteBox.axaml
+++ b/src/Ursa.Themes.Semi/Controls/MultiAutoCompleteBox.axaml
@@ -37,7 +37,7 @@
-
+
diff --git a/src/Ursa/Controls/AutoCompleteBox/MultiAutoCompleteBox.cs b/src/Ursa/Controls/AutoCompleteBox/MultiAutoCompleteBox.cs
index 829ccd0..f033d72 100644
--- a/src/Ursa/Controls/AutoCompleteBox/MultiAutoCompleteBox.cs
+++ b/src/Ursa/Controls/AutoCompleteBox/MultiAutoCompleteBox.cs
@@ -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
/// The selection changed event data.
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
diff --git a/src/Ursa/Controls/AutoCompleteBox/MultiAutoCompleteSelectionAdapter.cs b/src/Ursa/Controls/AutoCompleteBox/MultiAutoCompleteSelectionAdapter.cs
index a8a0116..da72448 100644
--- a/src/Ursa/Controls/AutoCompleteBox/MultiAutoCompleteSelectionAdapter.cs
+++ b/src/Ursa/Controls/AutoCompleteBox/MultiAutoCompleteSelectionAdapter.cs
@@ -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
///
private SelectingItemsControl? _selector;
- private object? _previewSelectedItem;
- private object? _selectedItem;
-
///
/// Initializes a new instance of the
///
@@ -110,14 +108,13 @@ public class MultiAutoCompleteSelectionAdapter : ISelectionAdapter
/// The selected item of the underlying selection adapter.
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;
}
///
@@ -258,6 +257,7 @@ public class MultiAutoCompleteSelectionAdapter : ISelectionAdapter
///
internal void OnCommit()
{
+ /*
if (_previewSelectedItem is null) return;
SelectedItem = _previewSelectedItem;
SelectionChanged?.Invoke(this,
@@ -267,6 +267,7 @@ public class MultiAutoCompleteSelectionAdapter : ISelectionAdapter
new List