diff --git a/src/Snap.Hutao/Snap.Hutao/Control/AutoSuggestBox/AutoSuggestTokenBox.cs b/src/Snap.Hutao/Snap.Hutao/Control/AutoSuggestBox/AutoSuggestTokenBox.cs index 8b8645f7..03c90f31 100644 --- a/src/Snap.Hutao/Snap.Hutao/Control/AutoSuggestBox/AutoSuggestTokenBox.cs +++ b/src/Snap.Hutao/Snap.Hutao/Control/AutoSuggestBox/AutoSuggestTokenBox.cs @@ -7,6 +7,7 @@ using Microsoft.UI.Xaml; using Microsoft.UI.Xaml.Controls; using Microsoft.UI.Xaml.Controls.Primitives; using Snap.Hutao.Control.Extension; +using System.Collections; namespace Snap.Hutao.Control.AutoSuggestBox; @@ -78,11 +79,23 @@ internal sealed partial class AutoSuggestTokenBox : TokenizingTextBox return; } - args.Item = AvailableTokens.GetValueOrDefault(args.TokenText) ?? new SearchToken(SearchTokenKind.None, args.TokenText); + if (AvailableTokens.GetValueOrDefault(args.TokenText) is { } token) + { + args.Item = token; + } + else + { + args.Cancel = true; + } } private void OnTokenItemCollectionChanged(TokenizingTextBox sender, object args) { + if (args is SearchToken { Kind: SearchTokenKind.None } token) + { + ((IList)sender.ItemsSource).Remove(token); + } + FilterCommand.TryExecute(FilterCommandParameter); } } \ No newline at end of file