在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我寻找任何可能寻找的主题,我没有找到答案
通常这是一个坏主意,因为如果你的应用程序变得足够复杂,你最终会在运行时你的MainPage
不存在的情况下结束,因此会崩溃,当你试图访问(null)静态实例。例如,如果你在一个多页面应用程序中实现暂停/终止/恢复,或者你实现一个像Share这样的合约,就可能发生这种情况。即使你现在的项目很简单,如果你将来要构建更大的应用程序,这也是一个坏习惯。
通常,您将使用MVVM方法在数据模型中包含此信息,然后MainPage
将绑定到数据模型(或显式地从中读取值)。有很多关于MVVM的网络资源-只要使用你最喜欢的搜索引擎。