Comment puis-je sauvegarder les variables d'application globales dans WPF?

Dans WPF, où puis-je enregistrer une valeur lorsque, dans un UserControl, puis plus tard dans un autre UserControl de l'accès que de la valeur de nouveau, quelque chose comme l'état de session dans la programmation web, par exemple:

UserControl1.xaml.cs:

Customer customer = new Customer(12334);
ApplicationState.SetValue("currentCustomer", customer); //PSEUDO-CODE

UserControl2.xaml.cs:

Customer customer = ApplicationState.GetValue("currentCustomer") as Customer; //PSEUDO-CODE

RÉPONSE:

Merci, Bob, voici le code que j'ai eu à travailler, basée sur le vôtre:

public static class ApplicationState
{
    private static Dictionary<string, object> _values =
               new Dictionary<string, object>();
    public static void SetValue(string key, object value)
    {
        if (_values.ContainsKey(key))
        {
            _values.Remove(key);
        }
        _values.Add(key, value);
    }
    public static T GetValue<T>(string key)
    {
        if (_values.ContainsKey(key))
        {
            return (T)_values[key];
        }
        else
        {
            return default(T);
        }
    }
}

Pour enregistrer une variable:

ApplicationState.SetValue("currentCustomerName", "Jim Smith");

De lire une variable:

MainText.Text = ApplicationState.GetValue<string>("currentCustomerName");

source d'informationauteur Edward Tanguay