如何导航到 UWP 中的参数化构造函数? [复制]

Posted

技术标签:

【中文标题】如何导航到 UWP 中的参数化构造函数? [复制]【英文标题】:How to navigate to Parametrised Constructor in UWP? [duplicate] 【发布时间】: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 【参考方案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

【讨论】:

以上是关于如何导航到 UWP 中的参数化构造函数? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如果类具有参数化构造函数,为啥Java不提供默认构造函数? [复制]

为啥当类包含任何参数化构造函数时编译器不提供默认构造函数? [复制]

有没有一种用构造函数参数实例化类的捷径? [复制]

UWP导航到PivotPage

继承&构造函数

参数化构造函数和函数对象调用如何协同工作?