OnNavigatedTo() 如何只调用一次?

How OnNavigatedTo() invoke only once?

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

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

有没有办法只在第一次调用一个方法,并可能识别它是否是一个新的导航,或者如果我们在该页面上仅通过按下设备的后退按钮返回?

 protected  override void OnNavigatedTo(NavigationEventArgs e)
        {  


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

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

您可以添加一个实例字段:

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"
            });
    }
}

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

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

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