如何从详细页面导航到主细节页面?

时间:2016-05-27 14:26:48

标签: visual-studio xamarin visual-studio-2015 xamarin.forms

详细信息页面中的按钮无法转到主详细信息页面。它一直显示错误"中断异常"。也许我没有实现这一权利。请帮忙:(

2 个答案:

答案 0 :(得分:1)

主详细信息页面不起作用。您不会从主设备导航到详细信息并返回。 Master始终可用,但在手机上它会像抽屉一样滑出,如果不是故意隐藏在平板电脑上,它会与详细页面一起出现。

public class App : Application
{
    MasterDetailPage masterdetail;
    Page detailpage;
    Page masterpage;

    protected override void OnStart()
    {
        masterdetail= new MasterDetailPage();
        detailpage = new MyDetailPage();
        masterpage = new Page();
        masterdetail.Master = masterpage;
        masterdetail.Detail = detailpage;
        MainPage = masterdetail;        
    }

}

在电话上

使用上面的示例,您将只看到详细信息页面,除非您从左向右滑动或在代码中将masterdetail.IsPresented更改为true。

平板电脑

如果masterdetail.IsPresent为true,则母版页将显示在左侧,详细信息显示在右侧,而没有任何其他代码修改此内容。

<强> IsPresented

您可能正在寻找的是通过点击按钮访问IsPresented字段。

public partial class MyDetailPage : ContentPage
{
    Button abutton;    

    MyDetailPage()
    {
        abutton = new Button();
        abutton.click += (o,s) => {App.masterdetail.IsPresented == true ? false : true}
    }
}

一般用法

这种布局设计的一般意图是该母版页可以在类似于联系人列表的情况下导致子导航详细信息页面 - &gt;特定联系人详细信息类型关系。

https://developer.xamarin.com/guides/xamarin-forms/user-interface/navigation/master-detail-page/

从其他页面导航至MasterDetail

button.click += (o,s) => 
{
    var detailpage = new Page();
    var masterpage = new Page();
    var masterdetailpage = new MasterDetailPage();
    masterdetailpage.Master = masterpage;
    masterdetailpage.Detail = detailpage;
    App.Current.MainPage = masterdetailpage;
}

使用命令从Xaml执行相同的操作

下面的示例在页面的代码中创建一个命令,并将其绑定到页面的xaml上的按钮。

public partial class CurrentPage : ContentPage
{
    private ICommand goToMasterDetailCommand;
    public ICommand goToMasterDetail
    {
        return goToMasterDetailCommand ?? (goToMasterDetailCommand = new Command(async () => await ExecuteGoToMasterDetail()));
    }

    private async Task ExecuteGoToMasterDetail()
    {
        var detailpage = new Page();
        var masterpage = new Page();
        var masterdetailpage = new MasterDetailPage();
        masterdetailpage.Master = masterpage;
        masterdetailpage.Detail = detailpage;
        App.Current.MainPage = masterdetailpage;
    }
}
<Button
x:Name="GoToButton"
Text="Go To Master Detail"
HorizontalOptions="FillAndExpand"
Command="{Binding goToMasterDetail}"
IsVisible="true">

答案 1 :(得分:0)

请尝试     Application.Current.MainPage = new MasterDetailsPage(); 按下按钮