формы xamarin - очистить SearchBar

<NavigationPage.TitleView>
                <StackLayout BackgroundColor="Red" HorizontalOptions="FillAndExpand" VerticalOptions="StartAndExpand" Orientation="Horizontal">
                    <SearchBar x:Name="SearchBar" BackgroundColor="#Brown" TextChanged="SearchBar_TextChanged" HorizontalOptions="FillAndExpand" Placeholder="Search..." PlaceholderColor="Gray" TextColor="White" VerticalOptions="StartAndExpand"/>
                </StackLayout>
            </NavigationPage.TitleView> 

Почему нет события для очистки SearchBar

https://docs.microsoft.com/en-us/xamarin/xamarin-forms/user-interface/searchbar

Сценарий заключается в том, что пользователь вводит продукт в searchBar, который он выбирает и добавляет в корзину. Затем пользователь нажимает на корзину, переходя со страницы продуктов на страницу SC. Однако затем пользователь передумывает и возвращается на страницу продукта, чтобы изменить свой заказ.

Когда это произойдет, предыдущий текст, введенный в SearchBar, все равно будет отображаться. Я пробовал SearchBar.Text = String.Empty;

на OnDisappearing (), но при этом текст просто становится пустым, и по какой-то причине страница продуктов перестает работать, я не могу прокручивать LV вверх и вниз, когда пытаюсь это сделать.

Также пробовал SearchBar.Text = String.Empty; SearchBar.Unfocus ();

но это тоже не сработало,

что о

SearchBar.ClearValue (что я хотел здесь указать? Когда я получаю к нему доступ только из ..

 protected override void OnDisappearing()
        {       
//would this resolve it?
            SearchBarControl.ClearValue(//how do I access bindable property that it is asking for? when its not an event callback?
       
        }

я что-то теряю? не должно быть чего-то вроде SearchBar.Clear ()?

Спасибо


person John    schedule 06.05.2021    source источник
comment
просто установите searchBar.Text = string.Empty;. Если это вызывает проблему в другом месте вашего кода, решите эту проблему.   -  person Jason    schedule 06.05.2021
comment
Утвердительный....   -  person John    schedule 06.05.2021


Ответы (1)


вы пробовали использовать это:

protected override void OnAppearing()
    {
        base.OnAppearing();
        SearchBar.Text = "";  //<<-- add this
    }

также проверяет в SearchBar_TextChanged

if (!String.IsNullOrWhiteSpace(SearchBar.Text)) 
    {
        //this code will be executed when there's a text in searchbar
    }
person Godya Aditya    schedule 06.05.2021
comment
Привет Годя, Большое спасибо за ответ. оказывается, у меня не было if (! String.IsNullOrWhiteSpace (SearchBar.Text)), установленного в моем SearchBar_TextChanged. Еще раз спасибо, это решило мою проблему. - person John; 06.05.2021
comment
пожалуйста :) - person Godya Aditya; 22.05.2021