Windows 8应用程序-传递数据到主页

本文关键字:数据 主页 应用程序 Windows | 更新日期: 2023-09-27 18:10:48

我想在我的应用程序中从MainPage的子页面传递数据。问题是,从我可以看出,有一个启动加载屏幕,导航到MainPage,我想写一个"If navigatedto "块包含在OnNavigatedTo.

下面是我的mainpage . example .cs代码:

    protected override void OnNavigatedTo(NavigationEventArgs args)
    {
        if (base.OnNavigatedFrom(args) = ChildPage)
        {
        //    Code for: If navigated from child page
            ReturnData returnData = args.Parameter as ReturnData;
            this.myNewString = returnData.myString;
        }
        base.OnNavigatedTo(args);
    }

Windows 8应用程序-传递数据到主页

我发现你不能像传递数据到Windows 8应用程序的另一个页面那样返回数据。

对于解决方案,我创建了一个'Completed'事件并从MainPage c#代码后面调用它。

MainPage.xaml.cs :

    protected override void OnNavigatedFrom(NavigationEventArgs args)
    {
        if (args.SourcePageType.Equals(typeof(ChildPage)))
            (args.Content as ChildPage).Completed += OnChildPageCompleted;
        base.OnNavigatedFrom(args);
    }
    void OnChildPageCompleted(object sender, ReturnData args)
    {
        // Code to run if returned back to MainPage from ChildPage
        this.myNewString = returnData.myString;
        (sender as ChildPage).Completed -= OnChildPageCompleted;
    }

ReturnData.cs :

namespace MyTestApp
{
    class ReturnData
    {
        public String myString { set; get; }
    }
}

ChildPage.xaml.cs :

public event EventHandler<ReturnData> Completed;

ChildPage.xaml.cs :

protected override void OnNavigatedFrom(NavigationEventArgs args)
{
    if (Completed != null)
    {
        // Create ReturnData object
        ReturnData returnData = new ReturnData();
        returnData.myString = newStringChanged;
        // Fire Completed event
        Completed(this, returnData);
    }
    base.OnNavigatedFrom(args);
}