C# 在UWP中的一个页面类中创建相同的实例是一个好主意吗?

C# 在UWP中的一个页面类中创建相同的实例是一个好主意吗?,c#,xaml,uwp,C#,Xaml,Uwp,有时,当我写作时,我不得不(例如)在另一页的TextBlock中编辑文本,然后我做了以下技巧: private static MainPage _gui; public static void SetTitleText(string text) => _gui.TitleText.Text = text; public static Visibility InfoCenterStackPanelVisibility { get { ret

有时,当我写作时,我不得不(例如)在另一页的TextBlock中编辑文本,然后我做了以下技巧:

    private static MainPage _gui;

    public static void SetTitleText(string text) => _gui.TitleText.Text = text;

    public static Visibility InfoCenterStackPanelVisibility
    {
        get { return _gui.InfoCenterStackPanel.Visibility; }
        set { _gui.InfoCenterStackPanel.Visibility = value; }
    }

    public MainPage()
    {
        InitializeComponent();

        _gui = this;
    }
在另一个页面中,我只调用
MainPage.SetTitleText

我想知道,有没有其他更好的方法来访问这些项目,而无需创建
\u gui


ps我查找了任何可能的主题,但没有找到答案通常这是一个坏主意,因为如果你的应用程序变得足够复杂,那么你的
主页在运行时将不存在,因此当你尝试访问(null)静态实例时将崩溃。这可能会发生,例如,如果您在多页应用程序中实现挂起/终止/恢复,或者实现类似共享的契约。即使您当前的项目很简单,但如果您将来构建更大的应用程序,这也是一个坏习惯


通常情况下,您会使用在数据模型中包含此信息,然后,
MainPage
将仅绑定到数据模型(或显式读取其中的值)。MVVM有很多web资源—只需使用您最喜欢的搜索引擎即可。

一般来说,这是个坏主意,因为如果您的应用程序变得足够复杂,您的
主页在运行时将不存在,因此在尝试访问(null)静态实例时将崩溃。这可能会发生,例如,如果您在多页应用程序中实现挂起/终止/恢复,或者实现类似共享的契约。即使您当前的项目很简单,但如果您将来构建更大的应用程序,这也是一个坏习惯


通常情况下,您会使用在数据模型中包含此信息,然后,
MainPage
将仅绑定到数据模型(或显式读取其中的值)。MVVM有很多网络资源—只需使用您最喜欢的搜索引擎即可。

非常感谢您的回答,现在我知道下一步要学什么:)祝您有一个愉快的一天谢谢您的回答,现在我知道下一步要学什么:)祝您有一个愉快的一天