我正在制作一个 Silverlight 网站。
是否有可能建立某种记忆,我可以在其中存储一些值并可以从不同的页面中调用它们?
谢谢
我通常创建一个名为 Session 的类,其属性名为 Default,如下所示:
public class SessionBase<T> : INotifyPropertyChanged where T : class
{
public static T Default
{
get
{
var instance = Application.Current.Resources["SessionName"] as T;
if (instance == null)
{
instance = Activator.CreateInstance<T>();
Application.Current.Resources.Add("SessionName", instance);
}
return instance;
}
}
}
然后在我的 app.xaml 我有:
<Classes:Session x:Name="SessionName"/>
通过这种方式,您可以使用绑定和 c#(代码隐藏)访问同一个实例。T 继承 SessionBase 并且在该类中您可以存储您想要的任何信息,并且它将在整个应用程序会话中保持可用。例如:
public class Session : SessionBase<Session>
{
public int X { get; set; }
}
然后,您将能够绑定到 X(需要提高 PropertyChanged 以进行双向绑定)并从 c# 访问它