diff --git a/Uno.Gallery/Views/SamplePages/AutoSuggestBoxSamplePage.xaml.cs b/Uno.Gallery/Views/SamplePages/AutoSuggestBoxSamplePage.xaml.cs index 6b3a78c72..e81ba748e 100644 --- a/Uno.Gallery/Views/SamplePages/AutoSuggestBoxSamplePage.xaml.cs +++ b/Uno.Gallery/Views/SamplePages/AutoSuggestBoxSamplePage.xaml.cs @@ -3,6 +3,8 @@ using System.Linq; using Uno.Gallery.ViewModels; using Microsoft.UI.Xaml.Controls; +using Uno.Gallery.Helpers; +using Microsoft.UI.Xaml.Controls.Primitives; namespace Uno.Gallery.Views.Samples { @@ -12,17 +14,30 @@ public sealed partial class AutoSuggestBoxSamplePage : Page public AutoSuggestBoxSamplePage() { this.InitializeComponent(); + Loaded += AutoSuggestBoxSamplePage_Loaded; + } + + private void AutoSuggestBoxSamplePage_Loaded(object sender, RoutedEventArgs e) + { +#if HAS_UNO + var desc = VisualTreeHelperEx.GetDescendants(this).OfType(); + + foreach (var item in desc) + { + + var border = item.GetTemplateChild("SuggestionsContainer") as Border; + border?.EnsureXamlControlsResources(true); + } +#endif + Loaded -= AutoSuggestBoxSamplePage_Loaded; } private void AutoSuggestBox_TextChanged(AutoSuggestBox sender, AutoSuggestBoxTextChangedEventArgs args) { - //This check can be removed when https://github.com/unoplatform/uno/issues/11635 is fixed -#if !__ANDROID__ && !__IOS__ if (args.Reason != AutoSuggestionBoxTextChangeReason.UserInput) { return; } -#endif if (string.IsNullOrEmpty(sender.Text)) { @@ -31,7 +46,7 @@ private void AutoSuggestBox_TextChanged(AutoSuggestBox sender, AutoSuggestBoxTex if (((Sample)DataContext).Data is AutoSuggestBoxSamplePageViewModel viewModel) { - sender.ItemsSource = viewModel.GetSuggestedItems(sender.Text).Select(sample => sample.Title).ToList(); + sender.ItemsSource = viewModel.GetSuggestedItems(sender.Text)?.Select(sample => sample.Title).ToList(); } } @@ -39,20 +54,17 @@ private void AutoSuggestBox_SuggestionChosen(AutoSuggestBox sender, AutoSuggestB { if (((Sample)DataContext).Data is AutoSuggestBoxSamplePageViewModel viewModel) { - viewModel.SelectedString = args.SelectedItem.ToString(); + viewModel.SelectedString = args.SelectedItem.ToString() ?? string.Empty; } } private void SearchBox_TextChanged(AutoSuggestBox sender, AutoSuggestBoxTextChangedEventArgs args) { - //This check can be removed when https://github.com/unoplatform/uno/issues/11635 is fixed -#if !__ANDROID__ && !__IOS__ if (args.Reason != AutoSuggestionBoxTextChangeReason.UserInput) { return; } -#endif if (((Sample)DataContext).Data is AutoSuggestBoxSamplePageViewModel viewModel) { @@ -88,7 +100,7 @@ public class AutoSuggestBoxSamplePageViewModel : ViewModelBase public Sample SearchBoxSelectedItem { get => GetProperty(); set => SetProperty(value); } - public List GetSuggestedItems(string searchQuery) + public List? GetSuggestedItems(string searchQuery) { if (string.IsNullOrEmpty(searchQuery)) {