In ASP.NET, I can do Session["something"] = something;
, and then I can retrieve in another page the value of the session. Is there a Session in WPF that would allow me to do the same in ASP.NET? I notice there is no session in WPF because there is state. Because I got many user control pages, I need to get its values and display it on the MainWindow.
Is there anything similar to Session in WPF?
Some resources say to use cookies. How do I do that? mine Is a WPF application not a WPF web application?
If I understand your question correctly, you just need some kind of global storage for certain values in your program.
You can create a static class with public static properties for the various values that you need to store and be able to globally access inside your application. Something like:
public static class Global
{
private string s_sSomeProperty;
static Globals ()
{
s_sSomeProperty = ...;
...
}
public static string SomeProperty
{
get
{
return ( s_sSomeProperty );
}
set
{
s_sSomeProperty = value;
}
}
...
}
This way you can just write Global.SomeProperty
anywhere in your code where the Global
class is available.
Of course, you'd need validation and - if your application is multithreaded - proper locking to make sure your global (shared) data is protected across threads.
This solution is better than using something like session because your properties will be strongly typed and there's no string-based lookup for the property value.
One possibility is to use:
Application.Current.Resources["something"] = something;
I wouldn't get into the habit of using that too frequently though. I think it's generally for data that's being stored once (such as styles) and then just referenced from other points in the application. Everything in your app reading/writing to some globally shared piece of data is poor practice and could make debugging tough.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With