C# 如何传递到泛型并从泛型传递到另一个类?
当我登录到我的应用程序时,我将C# 如何传递到泛型并从泛型传递到另一个类?,c#,wpf,xaml,generics,generic.xaml,C#,Wpf,Xaml,Generics,Generic.xaml,当我登录到我的应用程序时,我将cUserEntity类传递到仪表板表单,该类保存登录用户的所有详细信息,包括UserID和Username。从这里,我可以继续把细节从一个班级传递到另一个班级,从一个表格传递到另一个表格。例如(忽略本例中的通用位): 登录: xamlDashboard Manager = new xamlDashboard(_loggedInUser); Generic Gen = new Generic(_loggedInUser); Manager.Show(); c
cUserEntity
类传递到仪表板表单,该类保存登录用户的所有详细信息,包括UserID和Username。从这里,我可以继续把细节从一个班级传递到另一个班级,从一个表格传递到另一个表格。例如(忽略本例中的通用位):
登录:
xamlDashboard Manager = new xamlDashboard(_loggedInUser);
Generic Gen = new Generic(_loggedInUser);
Manager.Show();
cUserEntity _loggedInUser;
public xamlDashboard(cUserEntity loggedInUser)
{
InitializeComponent();
_loggedInUser = loggedInUser;
}
仪表板:
xamlDashboard Manager = new xamlDashboard(_loggedInUser);
Generic Gen = new Generic(_loggedInUser);
Manager.Show();
cUserEntity _loggedInUser;
public xamlDashboard(cUserEntity loggedInUser)
{
InitializeComponent();
_loggedInUser = loggedInUser;
}
但是,我有一个Generic.Xaml
页面,它在每个窗口的顶部创建一个按钮。在Generic.xaml
后面是一个泛型类,它为创建的按钮保存单击事件。单击事件
打开另一个窗体的新窗口
现在,我需要另一个表单来获得登录的用户详细信息,为此,我假设需要传递到Generic.Xaml
,然后通过单击事件
从那里传递到新表单。然而,正如我读过并注意到的,这似乎是不可能的,因为在运行时不能将类型传递给泛型
我希望实现的目标(失败):
因此,能够做到这一点的最佳和最有效的方法是什么,如果可能的话,请举例说明。创建一个单例对象来存储登录用户会简单得多
public class UserAccount
{
private static User _currentUser;
private UserAccount() {}
public static User CurrentUser
{
set
{
_currentUser = value;
}
get
{
return _currentUser;
}
}
}
然后在登录后你会这样做
// Set the current User
UserAccount.CurrentUser = user;
然后在任何类中,您需要当前登录的用户。。。你可以
var user = UserAccount.CurrentUser;
显然,您需要围绕这一点实施您自己的业务规则,但这一概念正是我在这里试图表达的,它是一个静态的用户实例,可以从任何地方访问。谢谢您的回答。我从来没有想过要做那件事,现在想想,我当时做这件事的方式似乎相当愚蠢。谢谢你的帮助!