【问题标题】:How to navigate to Parametrised Constructor in UWP? [duplicate]如何导航到 UWP 中的参数化构造函数? [复制]
【发布时间】:2016-02-26 10:55:01
【问题描述】:

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

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

我使用的是普通导航

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

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

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

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

【问题讨论】:

  • @AndriiKrupka 你是对的我已经搜索过但没有找到这个
  • 我猜你搜索的请求不正确。
  • 可能会感谢您的帮助@AndriiKrupka

标签: c# xaml win-universal-app


【解决方案1】:

需要使用重载方法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;
}

【讨论】:

  • 完美!谢谢@Andrii Krupka
  • 一个很好的明确答案。
【解决方案2】:

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-07-14
    • 1970-01-01
    • 2014-07-21
    • 2012-12-05
    • 2012-06-17
    • 2015-09-04
    • 2019-07-03
    • 2011-05-24
    相关资源
    最近更新 更多