C#xaml在另一个页面调用方法-处理字段数据

C# xaml call method in another page - process field data

我有一个情况,我有 MainPage,里面有 Frame 和一个按钮。

Button 是否可以浏览不同的页面来填写表格。

Frame 是用来显示这些页面的不同形式和要插入的数据。

现在我有一个问题,如果我按下那个按钮,我需要在我所在的页面上处理该数据。编辑(工作)代码:

SubjectInfo si;
NeckPain np;
...

private void Navigate()
        {
            step++;
            if (action.Equals("New"))
            {
                if (si == null)
                LoadNewSubjectPages();
                switch (step)
                {
                    case 1:
                        ShowFrame();  // Frame becomes visible to display pages
                        FrameMain.Navigate(si); // Displays subject info page in frame
                        btnNavigation.Content = "Next";
                        break;
                    case 2:
                        bool res = si.ValuesToExcel(); // Problematic place (1) - Fixed
                        if (res)
                            FrameMain.Navigate(np);
                        else
                            step--;
                        break;
                        ...
                    default:  // When steps reach to end
                        HideFrame();
                        LoadNewSubjectPages(); // Loads new Page objects
                        break;
                }
            }
        }
// Loads pages for form.
private void LoadNewSubjectPages()
        {
            si = new SubjectInfo();
            np = new NeckPain();
            ...
        }

(1) 这是我在页面上调用该方法的地方,但该页面中的每个元素都是空的。因此,当我得到例如 txbName.Text 时,我得到的只是 null.

如何获得包含所有已填写字段的页面?

编辑:也许有更好的方法来解决这个问题,但我现在就是这样编辑的。

每次按下按钮,您都在创建一个新的 SubjectInfo。从 Navigate() 中创建它,一切都会正确。