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

本文关键字:实例 创建 好主意 UWP 一个 | 更新日期: 2023-09-27 18:17:49

有时当我写的时候,我不得不在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等;

我想知道,有没有其他更好的方法来访问这些项目,而不创建_gui ?

ps我寻找任何可能寻找的主题,我没有找到答案

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

通常这是一个坏主意,因为如果你的应用程序变得足够复杂,你最终会在运行时你的MainPage不存在的情况下结束,因此会崩溃,当你试图访问(null)静态实例。例如,如果你在一个多页面应用程序中实现暂停/终止/恢复,或者你实现一个像Share这样的合约,就可能发生这种情况。即使你现在的项目很简单,如果你将来要构建更大的应用程序,这也是一个坏习惯。

通常,您将使用MVVM方法在数据模型中包含此信息,然后MainPage将绑定到数据模型(或显式地从中读取值)。有很多关于MVVM的网络资源-只要使用你最喜欢的搜索引擎。