Skip to content

Commit

Permalink
use virtual method
Browse files Browse the repository at this point in the history
  • Loading branch information
qhy040404 committed Jun 3, 2024
1 parent 64a3ad8 commit 3410645
Show file tree
Hide file tree
Showing 3 changed files with 154 additions and 180 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -17,14 +17,9 @@ internal sealed partial class AutoSuggestTokenBox : TokenizingTextBox.Tokenizing
public AutoSuggestTokenBox()
{
DefaultStyleKey = typeof(TokenizingTextBox.TokenizingTextBox);
TextChanged += OnFilterSuggestionRequested;
QuerySubmitted += OnQuerySubmitted;
TokenItemAdding += OnTokenItemAdding;
TokenItemAdded += OnTokenItemCollectionChanged;
TokenItemRemoved += OnTokenItemCollectionChanged;
}

private void OnFilterSuggestionRequested(Microsoft.UI.Xaml.Controls.AutoSuggestBox sender, AutoSuggestBoxTextChangedEventArgs args)
public override void OnTextChanged(Microsoft.UI.Xaml.Controls.AutoSuggestBox sender, AutoSuggestBoxTextChangedEventArgs args)
{
if (string.IsNullOrWhiteSpace(Text))
{
Expand All @@ -44,7 +39,7 @@ private void OnFilterSuggestionRequested(Microsoft.UI.Xaml.Controls.AutoSuggestB
}
}

private void OnQuerySubmitted(Microsoft.UI.Xaml.Controls.AutoSuggestBox sender, AutoSuggestBoxQuerySubmittedEventArgs args)
public override void OnQuerySubmitted(Microsoft.UI.Xaml.Controls.AutoSuggestBox sender, AutoSuggestBoxQuerySubmittedEventArgs args)
{
if (args.ChosenSuggestion is not null)
{
Expand All @@ -54,7 +49,7 @@ private void OnQuerySubmitted(Microsoft.UI.Xaml.Controls.AutoSuggestBox sender,
CommandInvocation.TryExecute(FilterCommand, FilterCommandParameter);
}

private void OnTokenItemAdding(TokenizingTextBox.TokenizingTextBox sender, TokenItemAddingEventArgs args)
public override void OnTokenItemAdding(TokenizingTextBox.TokenizingTextBox sender, TokenItemAddingEventArgs args)
{
if (string.IsNullOrWhiteSpace(args.TokenText))
{
Expand All @@ -71,13 +66,21 @@ private void OnTokenItemAdding(TokenizingTextBox.TokenizingTextBox sender, Token
}
}

private void OnTokenItemCollectionChanged(TokenizingTextBox.TokenizingTextBox sender, object args)
public override void OnTokenItemAdded(TokenizingTextBox.TokenizingTextBox sender, object args)
{
if (args is SearchToken { Kind: SearchTokenKind.None } token)
{
((IList)sender.ItemsSource).Remove(token);
}

base.OnTokenItemAdded(sender, args);

FilterCommand.TryExecute(FilterCommandParameter);
}

public override void OnTokenItemRemoved(TokenizingTextBox.TokenizingTextBox sender, object args)
{
base.OnTokenItemRemoved(sender, args);
FilterCommand.TryExecute(FilterCommandParameter);
}
}
Loading

0 comments on commit 3410645

Please sign in to comment.