我有一个Silverlight应用程序,它由许多使用Navigation Framework的页面组成。什么是存储应在所有页面(XAML)和整个页面中访问的数据的理想位置 应用程序的生命周期。
编辑:忘记提及我目前正在将其作为静态类
答案 0 :(得分:1)
静态成员通常是个坏主意。您无法控制生命周期或轻松替换另一组数据的能力(并且不会让我开始无法进行正确的单元测试)。您想使用某种类型的共享视图模型/数据模型。
如果你没有使用整个PRISM路径(我们现在总是使用PRISM用于Silverlight和WPF),或Unity,甚至只是MVVM,那么在数据对象上使用简单的单例访问器。
关于C#单身人士的最佳模式有很多讨论,但你可以在这里学到很多http://www.yoda.arachsys.com/csharp/singleton.html
希望这有帮助。
答案 1 :(得分:0)
我想创建一个名为Session
的类,其中包含一个像public static Session Default {get {return App.Current.Resources["Session"] as Session;}}
这样的静态属性,然后在app.xaml
中创建一个新的实例,就像这个<classes:Session x:Name="Session"/>
一样您可以使用Session.Default...
在代码后面访问它,并且可以使用Source
绑定绑定它,它将始终是同一个实例。我已将此模式扩展为具有基类等的更复杂和灵活的模式,但这应该足以满足您的目的。我在这个Web窗口中编写了这段代码,它可能无法编译,如果您需要更多帮助,请告诉我