美好的一天,我有一个应用程序,我正在忙着上大学。用户在MainWindow.xaml上输入数据,我想让他们在整个应用程序中访问他们在这个窗口上输入的数据(姓名,姓氏等等。我知道我可以将数据解析到每个单独的窗口但我总共有13个Windows 。
有没有办法可以在WPF中创建一个全局或会话变量,允许我在任何地方访问该数据。
我已经四处寻找答案但是使用类等似乎是一个糟糕的方法,我似乎无法找到一个可行的解决方案。
提前致谢。
答案 0 :(得分:0)
您始终可以将变量标记为公共静态,以便可以从任何位置访问它们。你可以简单地创建一个静态类来保存你所有的"全局"数据。
另一个选择是使MainWindow
类的属性保持静态,但这会导致将信息聚集到实际上是接口的类上,而不是存储。
可能最好的办法是:
Person
Person
MainWindow
将您的值写入属性在那里,你有一个静态(全局)可访问的数据集合实例,可以扩展并具有适当的封装和命名。
要添加的内容: 没有" Session"或者"全球" C#中的变量。您可以在全局空间中创建类,但不能创建变量和单词" session"让我想起WPF显然不是一个网络服务。
答案 1 :(得分:0)
有没有办法可以在WPF中创建一个全局或会话变量,允许我在任何地方访问该数据。
创建一个具有静态属性的类:
public class ApplicationContext
{
public static string Name { get; set; }
public static string Surname { get; set; }
}
然后,您可以从应用程序中的任何其他类访问这些属性:
//set:
ApplicationContext.Name = "name...";
//get:
string name = ApplicationContext.Name;
如果您因某些原因不想创建自己的课程,也可以使用Application.Current.Properties
集合:
//set;
Application.Current.Properties["Name"] = "name";
//get:
string name = Application.Current.Properties["Name"].ToString();