重定向后未更新静态变量

本文关键字:静态 变量 更新 重定向 | 更新日期: 2023-09-27 18:27:38

First Form2想要更新类文件

private void button1_Click(object sender, RoutedEventArgs e)
        {
           NavigationService.Navigate(new Uri("/Page1.xaml", UriKind.Relative));
           Class1.AddButton = 1;
           Class1.ChiefAnswer = "Done";
        }

类文件,表单1从类文件中检索,这意味着我只需要更新类文件,当它从表单2重定向到表单1时,它将重新加载

private static int AddBtn = 0;
public static int AddButton
        {
            get { return AddBtn; }
            set { AddBtn = value; }
        }

Form1(未更新,类似乎仍保持旧值)

 if (Class1.AddButton == 3)
 {
     MakeButton();
 }

起初,在我开始添加更多的变量并在表2中修改列表后,每个人都很好,但没有效果,这毫无意义。当我在表单2中调试它时,它显示表单2 中的AddButton=3

当调试进行时,我切换到class1.cs,值没有更新(可能不是实时的)

无论如何,当它到达从class1.cs检索的form1时,它并没有检索到我期望的值

谢谢你的帮助!:)

重定向后未更新静态变量

querystring方法

NavigationService.Navigate(new Uri("/PanoramaPage1.xaml?selected=item2", UriKind.Relative));
protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
    {
        string selected = String.Empty;
        //check to see if the selected parameter was passed.
        if (NavigationContext.QueryString.ContainsKey("selected"))
        {
            //get the selected parameter off the query string from MainPage.
            selected = NavigationContext.QueryString["selected"];
        }
        //did the querystring indicate we should go to item2 instead of item1?
        if (selected == "item2")
        {
            //item2 is the second item, but 0 indexed. 
            myPanorama.DefaultItem = myPanorama.Items[1];
        }
        base.OnNavigatedTo(e);
    }

您可以尝试切换这些语句的顺序,因此在重定向之前进行更新:

Class1.AddButton = 1;
Class1.ChiefAnswer = "Done";
NavigationService.Navigate(new Uri("/Page1.xaml", UriKind.Relative));