如何在UWP中导航到Parametrised Constructor?

时间:2016-02-26 10:55:02

标签: c# xaml win-universal-app

我想从一个页面导航到另一个页面 如果我的目标页面构造函数定义为,

    public Bills()
    {
        this.InitializeComponent();
    }

对于正常导航我正在使用

Frame.Navigate(typeof(Billing.Bills));

并且工作正常。假设我的目标页面构造函数包含一些参数,如

    public Bills(string strBillType, string strExchangeAmount, RootObject objRoot, string strPaymentType)
    {
        this.InitializeComponent();
    }

在上述情况如何导航到目标网页?

2 个答案:

答案 0 :(得分:5)

您需要使用重载方法Navigate(Type sourcePageType, System.Object parameter)

为参数创建类:

    public class BillParameters
    {
        //your properties
        public BillParameters(string strBillType, string strExchangeAmount, RootObject objRoot, string strPaymentType)
        {

        }
    }

传递你的参数:

    var parameters = new BillParameters(strBillType, strExchangeAmount, objRoot, strPaymentType);
    Frame.Navigate(typeof(Billing.Bills), parameters);

并在您的目标网页上重新

protected override async void OnNavigatedTo(NavigationEventArgs e)
{
    var parameters = e.Parameter as BillParameters;
}

答案 1 :(得分:3)

你做不到。如果您需要向页面发送值,请使用Frame.Navigate的重载:

Frame.Navigate(typeof(Billing.Bills), parameter)

然后,您可以从页面中检索参数的值:

protected override void OnNavigatedTo(NavigationEventArgs e)
{
    // Read e.Parameter to retrieve the parameter
}