xxb*_*bcc 17
如果我正确理解您的问题,您只需要为程序中的某些值提供某种全局存储.
您可以为需要存储的各种值创建具有公共静态属性的静态类,并且能够在应用程序内进行全局访问.就像是:
public static class Global
{
private string s_sSomeProperty;
static Globals ()
{
s_sSomeProperty = ...;
...
}
public static string SomeProperty
{
get
{
return ( s_sSomeProperty );
}
set
{
s_sSomeProperty = value;
}
}
...
}
Run Code Online (Sandbox Code Playgroud)
这样您就可以Global.SomeProperty在代码中的任何位置编写Global类所在的位置.
当然,您需要验证并且 - 如果您的应用程序是多线程的 - 正确锁定以确保跨线程保护您的全局(共享)数据.
此解决方案比使用会话之类的方法更好,因为您的属性将是强类型的,并且没有基于字符串的属性值查找.
一种可能性是使用:
Application.Current.Resources["something"] = something;
Run Code Online (Sandbox Code Playgroud)
我不会养成过于频繁使用它的习惯.我认为这通常是存储一次的数据(例如样式),然后只是从应用程序中的其他点引用.您的应用程序中读取/写入某些全局共享数据的所有内容都是不好的做法,可能会使调试变得困难.