c#UWP - Tiles OnNavigatedTo不保留MainPage

时间:2016-09-30 08:16:52

标签: c# .net c#-4.0 win-universal-app uwp

我刚刚在我的应用程序中集成了Tile创建。

Tiles创建得很好。我设置了一个字符串参数,以便在从Tile启动应用程序时使用。

在我的 Class.xaml.cs

            string tileActivationArguments = "test_params";

            SecondaryTile s = new SecondaryTile(name_clean,
                                                                name,
                                                                name,
                                                                tileActivationArguments,
                                                                TileOptions.ShowNameOnLogo,
                                                                logo);


            s.DisplayName = name;
            s.ForegroundText = ForegroundText.Dark;
            bool isPinned = await s.RequestCreateForSelectionAsync(MainPage.GetElementRect((FrameworkElement)sender), Windows.UI.Popups.Placement.Below);

并且成功了。

但是当我从启动菜单中点击Tile时,我到达MainPage.OnNavigatedTo并且在这里,params存在,我将它们设置在局部变量上。

MainPage.xaml.cs中

    private string params;

    protected override async void OnNavigatedTo(NavigationEventArgs e)
    {
        var parametters = e.Parameter as string;
        if (parametters != null && parametters != "")
        {
          params = parametters ; // WORKS: here params has the good parameter string
           ....
         }
     }

然后,它进入 MainPage()

    public MainPage()
    {
        this.InitializeComponent();

       // here the params seems to be reset
       Debug.WriteLine(params); // Exception
       // params == null 
    ... 
     }

任何想法?

1 个答案:

答案 0 :(得分:0)

OnNavigatedTo之前始终首先调用构造函数。此时,params仍然为空