【问题标题】:MasterDetailPage navigate only first clickMasterDetailPage 只导航第一次点击
【发布时间】:2021-07-23 15:37:17
【问题描述】:

我实现了一个 MasterDetailPage:

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;
 }

问题是,如果我点击客户端,导航工作,但如果我按下它也工作,当我再次点击客户端时,问题工作,我必须在索引或其他项目上导航,然后点击在客户端上,我无法在同一项目上导航两次。

【问题讨论】:

    标签: xamarin.forms master-detail


    【解决方案1】:

    顾名思义,SelectedItemChanged 仅在 更改 时触发。因此,如果您连续两次点击相同的选项,它只会触发一次。解决方法是设置

    navigationDrawerList.SelectedtedItem = null;
    

    在导航之前的事件处理程序中

    【讨论】:

    • 感谢您的快速回答,第二次单击时调用事件(OnMenuItemSelected),否则我可以在哪里添加 SelectedItem=null ?
    • 是的,这正是我告诉你的。 第一次时间将其设置为null
    • e.SelectedItem = null; ?这里有问题! (无法分配)
    • navigationDrawerList.SelectedItem = null;
    猜你喜欢
    • 1970-01-01
    • 2017-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多