Удаление страницы или ссылки при переходе на другую вкладку с помощью оболочки xamarin

#c# #xamarin #xamarin.forms #navigation #xamarin.shell

Вопрос:

Я создаю страницу с 2 вкладками, и на каждой из них есть строка поиска поверх них, значение строки поиска на первой вкладке остается при переходе на другие вкладки и обратно на первую вкладку. Как удалить состояние или ссылку при переходе на другую вкладку? поэтому при переходе обратно на первую вкладку открывается новая страница(в строке поиска нет значения, и запускается конструктор) вместо старой(конструктор не запускается).

Я использую оболочку xamarin.

 lt;Tab Title="Coffee"gt;  lt;Tab.Icongt;  lt;FontImageSource FontFamily="FAS"  Color="{AppThemeBinding   Dark=White,   Light={StaticResource SystemGray5Dark}}"  Glyph="{StaticResource IconCoffee}"/gt;  lt;/Tab.Icongt;  lt;ShellContent Title="Light" ContentTemplate="{DataTemplate local:CoffeeEquipmentPage}" Route="CoffeeEquipmentPage" /gt;  lt;ShellContent Title="Medium" ContentTemplate="{DataTemplate local:CoffeeEquipmentPage}" Route="CoffeeEquipmentPage2" /gt;  lt;ShellContent Title="Dark" ContentTemplate="{DataTemplate local:CoffeeEquipmentPage}" Route="CoffeeEquipmentPage3" /gt;  lt;/Tabgt;  lt;Tab Title="Espresso"gt;  lt;Tab.Icongt;  lt;FontImageSource FontFamily="FAS"  Color="{AppThemeBinding   Dark=White,   Light={StaticResource SystemGray5Dark}}"  Glyph="{x:Static fontAwesome:FontAwesomeIcons.MugHot}"/gt;  lt;/Tab.Icongt;  lt;ShellContent Title="tab 2" ContentTemplate="{DataTemplate local:CoffeeEquipmentPage}" Route="CoffeeEquipmentPage3" /gt;  lt;/Tabgt;  

Я прикрепил gif, чтобы показать такое поведение. Ссылка

Комментарии:

1. используйте CurrentPageChanged событие для запуска действия, когда пользователь меняет вкладки

2. я могу использовать это событие для очистки значения панели поиска при переходе на другую страницу, но как это сделать при обратном переходе ? мне нужно заново создать список, так как список будет изменен в зависимости от значения строки поиска

3. событие срабатывает каждый раз при изменении страницы, и ему все равно, собираетесь ли вы туда или обратно

4. Как мне разместить команду EventToCommand для CurrentPageChanged на своей странице? Я попытался разместить lt;ContentPage.Behaviorsgt; lt;xct:EventToCommandBehavior EventName="CurrentPageChanged" Command="{Binding CurrentPageChangedCommand}"/gt; lt;/ContentPage.Behaviorsgt; на своей странице, но там появилась ошибка «Система. Отражение. Сообщение об исключении TargetInvocationException=Исключение было вызвано целью вызова.»

5. Это событие срабатывает на странице вкладок, а не на странице содержимого