-1

私はシルバーライトのウェブサイトを作っています。

いくつかの値を保存し、別のページからそれらを呼び出すことができるメモリを作成することは可能ですか?

どうも

4

1 に答える 1

0

私は通常、次のような Default というプロパティを使用して、Session というクラスを作成します。

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 に答える