C# 在UWP中的一个页面类中创建相同的实例是一个好主意吗?
有时,当我写作时,我不得不(例如)在另一页的TextBlock中编辑文本,然后我做了以下技巧: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
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有很多网络资源—只需使用您最喜欢的搜索引擎即可。非常感谢您的回答,现在我知道下一步要学什么:)祝您有一个愉快的一天谢谢您的回答,现在我知道下一步要学什么:)祝您有一个愉快的一天