如何从加载到框架中的页面更改SplitView.Pane中的TextBlock文本?

时间:2017-02-03 19:28:02

标签: c# xaml uwp

我的MainPage有一个SplitView,我加载到SplitView我的StartPage的框架中。

如何从我的StartPage访问MainPage中的xaml对象,例如:

如何从Start Page更改SplitView.Pane中TextBlock用户的文本

MainPage xaml:

<SplitView x:Name="MySplitView" DisplayMode="Inline" IsPaneOpen="True" OpenPaneLength="243">
    <SplitView.Pane>
        <StackPanel Background="#222d32" Padding="10,20">
            <TextBlock x:Name="User" Foreground="#ffffff" TextWrapping="Wrap"/>
        </StackPanel>
    </SplitView.Pane>
    <Frame Name="MainFrame">

    </Frame>
</SplitView>

MainPage cs:

this.InitializeComponent();
MainFrame.Navigate(typeof(StartPage));

StartPage cs:

public sealed partial class StartPage : Page
{
    public StartPage()
    {
        this.InitializeComponent();
    }
}

1 个答案:

答案 0 :(得分:1)

您可以使用x:FieldModifier="public"将TextBlock字段公开。然后,您可以从其他类访问它,但您需要MainPage类的实例。我在我的应用程序中使用静态属性。

public static MainPage Current { get; private set; }

在你的MainPage构造函数中,你必须像这样分配它:

Current = this;

然后,您可以使用以下方法从另一个类设置TextBlock上的Text属性:

MainPage.Current.User.Text = "new text";