另一个页面中的C#xaml调用方法 - 进程字段数据

时间:2016-01-14 10:58:10

标签: c# wpf xaml frame

我有情况,我有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

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

编辑:也许有更好的方法可以解决这个问题,但这就是我此刻编辑的方式。

1 个答案:

答案 0 :(得分:1)

您在按下按钮的任何时候都在创建新的SubjectInfo。从Navigate()创建,一切都正确。