页面正在WPF选项卡式文档界面中重新加载

时间:2018-07-23 05:31:29

标签: wpf

我正在WPF中创建一个桌面应用程序。我正在尝试使用标签来显示多个页面。我没有使用MVVM。问题是,当我单击菜单项“ Student_Info”时,将创建一个新选项卡并显示“学生”页面。但是,当我切换到另一个选项卡并返回到“学生”选项卡时,“学生”页面将重新加载,并且所有表格数据都将丢失。如何解决这个问题。 请注意I am using this code中自定义标签项。 我的添加新标签的代码如下:

    private void Menu_Click(object sender, RoutedEventArgs e)
    {
        Button btn = sender as Button;
        Frame frame = new Frame();
        ClosableTab tabItem = new ClosableTab();
        switch (btn.Tag)
        {
            case "Student":                    
                pageStudent student = new pageStudent();
                frame.Content = student;                                        
                tabItem.Title = "Student Info";
                break;

            case "Result":
                pageResult result = new pageResult();
                frame.Content = result;
                tabItem.Title = "Result";
                break;
        }
        tabItem.Content = frame;
        tabControl1.Items.Add(tabItem);
        tabItem.Focus();
    }

2 个答案:

答案 0 :(得分:1)

您的问题是,在Click事件处理程序中,您正在创建“学生”和“结果”页面的新实例。

您应该做的是在其他位置创建这两个页面(例如,在页面的Load事件上),并且在菜单click事件中,您应该只切换到这些选项卡,而不是重新创建它们。

答案 1 :(得分:0)

我刚刚注意到,当我回到选项卡时,每次都会调用page_loaded事件,但不会调用page的构造函数。我已经停止使用第一个调用后通过使用标志执行的page_loaded事件代码,现在问题已解决。对我来说,每当标签页被选中时,都会调用页面加载事件。