OnNavigatedTo()只调用一次?

时间:2015-02-08 13:58:55

标签: c# list xaml windows-phone-8

我创建了一个List<>在方法OnNavigatedTo()。

调用了List<>名为Reg的方法:Reg.Add(....)。这意味着我每次进入该页面时都会添加元素,如果我更改页面并使用设备的“后退”按钮,我会再次使用该方法,并且元素是dub,triple等。

有没有办法只在第一次调用方法,也许是为了识别它是否是新的导航,或者是否在那个页面上我们仅通过设备的Back按钮的压力返回?

 protected  override void OnNavigatedTo(NavigationEventArgs e)
        {  


                reg.Add(
                    new Regioni
                    {
                        NomeRegione = "Toscana",
                        NomeProvincia = "Firenze"
                    });

                reg.Add(
                    new Regioni
                    {
                        NomeRegione = "Toscana",
                        NomeProvincia = "Prato"
                    });

2 个答案:

答案 0 :(得分:1)

您可以添加实例字段:

protected bool Initialized = false;

protected  override void OnNavigatedTo(NavigationEventArgs e)
{  
    if(!Initialized)
    {
        Initialized = true;
        reg.Add(
            new Regioni
            {
                NomeRegione = "Toscana",
                NomeProvincia = "Firenze"
            });

        reg.Add(
            new Regioni
            {
                NomeRegione = "Toscana",
                NomeProvincia = "Prato"
            });
    }
}

答案 1 :(得分:1)

您可以使用后退按钮检查是否到达了页面:

protected  override void OnNavigatedTo(NavigationEventArgs e)
{  
    if (e.NavigationMode != NavigationMode.Back)
    {
        // add items to your collection
    }
}

祝我的意大利朋友发展好运;)