-1

我正在制作一个 Silverlight 网站。

是否有可能建立某种记忆,我可以在其中存储一些值并可以从不同的页面中调用它们?

谢谢

4

1 回答 1

0

我通常创建一个名为 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# 访问它

于 2012-11-29T05:24:47.837 回答