diff --git a/src/App/Forms/MainWindow.xaml.cs b/src/App/Forms/MainWindow.xaml.cs index 90e8c630..f2cd9480 100644 --- a/src/App/Forms/MainWindow.xaml.cs +++ b/src/App/Forms/MainWindow.xaml.cs @@ -199,6 +199,12 @@ private void OnRequestSearch(object sender, string e) vm.InitializeCommand.Execute(default); _ = OverlayFrame.Navigate(typeof(SearchPage), vm); } + else + { + var page = OverlayFrame.Content as SearchPage; + page.ViewModel.SetKeyword(e); + page.ViewModel.InitializeCommand.Execute(default); + } } private void OnRequestShowMyMessages(object sender, EventArgs e) diff --git a/src/ViewModels/Components/SearchBoxViewModel/SearchBoxViewModel.cs b/src/ViewModels/Components/SearchBoxViewModel/SearchBoxViewModel.cs index 43c56180..7826aca1 100644 --- a/src/ViewModels/Components/SearchBoxViewModel/SearchBoxViewModel.cs +++ b/src/ViewModels/Components/SearchBoxViewModel/SearchBoxViewModel.cs @@ -55,19 +55,22 @@ private void SearchBySuggest(SearchSuggest suggest) [RelayCommand] private void SearchByText(string text) { + CancelSuggestion(); + TryClear(AutoSuggestCollection); QueryText = text; AppViewModel.Instance.SearchContentCommand.Execute(text); } - private void InitializeSuggestionCancellationTokenSource() + private void CancelSuggestion() { - if (_suggestionCancellationTokenSource != null - && !_suggestionCancellationTokenSource.IsCancellationRequested) - { - _suggestionCancellationTokenSource.Cancel(); - _suggestionCancellationTokenSource = null; - } + _suggestionCancellationTokenSource?.Cancel(); + _suggestionCancellationTokenSource?.Dispose(); + _suggestionCancellationTokenSource = null; + } + private void InitializeSuggestionCancellationTokenSource() + { + CancelSuggestion(); _suggestionCancellationTokenSource = new CancellationTokenSource(TimeSpan.FromSeconds(1)); }