1

我有一个对象,我正在使用几乎所有 Windows 手机页面,目前我正在通过

PhoneApplicationService.Current.State["xx"] = m_xx;
NavigationService.Navigate(new Uri("/abc.xaml", UriKind.Relative));

但这必须对所有活动都进行,这是我不想要的。有没有更好的方法来保存我可以在所有页面中使用的 m_xx 对象?最佳做法是什么?

我可以将对象设为某个类的静态对象,然后通过该类名跨页面使用吗?

4

1 回答 1

2

您可能想研究 MVVM 模式。

不过,如果对您的应用程序的更改太大,您可以使用混合方法,将共享上下文存储在静态属性中。

首先,创建一个 Context 类并将您的共享属性放入其中:

public class Context
{
    public string SomeSharedProperty { get; set; }
}

然后,在 App.xaml.cs 中,创建一个静态属性来存储上下文:

private static Context context;

public static Context Context
{
    get
    {
        if (context == null)
        {
            context = new Context();
        }

        return context;
    }
}

然后,您可以从应用程序的任何位置访问您的上下文以存储/检索数据:

App.Context.SomeSharedProperty = "Hello world!";
于 2013-09-07T08:12:49.150 回答