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
Vous devez vous connecter pour publier un commentaire.
Quelque chose comme cela devrait fonctionner.
La classe d'Application a déjà cette fonctionnalité intégrée.
Vous pouvez exposer un public statique de la variable dans l'App.xaml.cs de fichiers et d'y accéder n'importe où à l'aide de la classe App..
Pourrait tout simplement mettre vous-même dans une classe statique ou un dépôt que vous pouvez injecter les classes qui ont besoin de données.