Главная страница перейдите только по первому щелчку

#xamarin.forms #master-detail

Вопрос:

У меня реализована главная страница:

 public MasterPage()
{menuList = new List<Models.MasterPageItem>();
var index= new Models.MasterPageItem() { Title = "index", Icon =index.png, TargetType = typeof(Index.Index) };
var client= new Models.MasterPageItem() { Title = "Clients", Icon =client.png, TargetType = typeof(Login.Client) };
menuList.Add(index);
menuList.Add(client);
navigationDrawerList.ItemsSource = menuList;
Detail = new NavigationPage((Page)Activator.CreateInstance(typeof(Dashboard)));
 }
private void OnMenuItemSelected(object sender, SelectedItemChangedEventArgs e){
Type page = item.TargetType;
Detail.Navigation.PushAsync((Page)Activator.CreateInstance(page));
IsPresented = false;
 }
 

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

Ответ №1:

как следует из названия, SelectedItemChanged срабатывает только при изменениях. Поэтому, если вы нажмете один и тот же параметр дважды подряд, он сработает только один раз. Обходной путь состоит в том, чтобы установить

 navigationDrawerList.SelectedtedItem = null;
 

в обработчике событий, прежде чем вы начнете

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

1. спасибо за быстрый ответ , досент события(onMenuItemSelected) вызывается при втором щелчке ,еще где я могу добавить SelectedItem=null ?

2. Да, это именно то, что я вам говорил. Установите его равным нулю в первый раз

3. e.SelectedItem = null; ? вот в чем проблема ! (не может быть назначен )

4. navigationDrawerList.SelectedItem = null;