C#WPF希望将数据存储在一个类中,并在不同的WPF窗口中的多个不同类中使用它



我有3个类。第一个存储信息,第二个将信息分配给第1d个类,第三个从第1个类读取信息。

一级,未分配给任何WPF窗口

public class ProfileInfo //Used to store Name and Surname Data
{
public string User_Name { get; set; }
public string User_Surname { get; set; }
}

二等舱,位于WPF窗口1

public class InsertInfo //Reads data and stores it in Class 1
{
ProfileInfo p = new ProfileInfo();
p.User_Name = "Bob"; //Example value but normally is read from db
p.User_Surname = "Jhones"; //Example value but normally is read from db
}

三等,位于WPF窗口2

public class ReadInfo //Reads data from Class 1 and displays it using MessageBox.Show
{
ProfileInfo p = new ProfileInfo();
MessageBox.Show(p.User_Name); // I want this to display Bob but it displays an empty value
MessageBox.Show(p.User_Surname);
}

我希望类1存储信息,直到我结束程序,这样我就可以在多个类中检索数据。

据我所知,这不起作用,因为在第三类中,我调用了一个完全不同的类1实例,该实例中没有存储数据???如果是的话,我该怎么做?

我在互联网上到处寻找在课堂之间共享数据的方法,但一切似乎都很困难,不可理解。我是个初学者,所以如果可能的话,请尽量用不太专业的语言来解释。

问题是,您在InsertInfo类内创建了一个ProfileInfo实例,但在第三类ReadInfo中,您创建了另一个默认为空的ProfileInfo实例。我不知道您的系统的详细信息,但您可以尝试将InsertInfo类中的ProfileInfo字段设置为静态属性,然后您可以从其他类访问它:

public class InsertInfo
{
private static ProfileInfo p = new ProfileInfo();
public static ProfileInfo P { get { return p; } }
public void AssignProfileInfo(string username, string surname)
{
p.User_Name = username;
p.User_Surname = surname;
}
}

然后,要访问存储的ProfileInfo,您可以访问静态属性:

public class ReadInfo
{
ProfileInfo p = InsertInfo.P;
public void ShowInfo()
{
MessageBox.Show(p.User_Name); 
MessageBox.Show(p.User_Surname);
}
}

最新更新