当我登录我的应用程序时,我将cUserEntity
类传递给Dashboard表单,该类包含登录用户的所有详细信息,包括UserID和Username。从这里开始,我可以继续传递从一个类到另一个类的细节,从形式到形式。例如(忽略此示例中的通用位):
登录
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类,它为创建的按钮保存click_event
。 click_event
打开另一个表单的新窗口。
现在,我需要其他表单来登录用户详细信息,为此,我假设我需要传递给Generic.Xaml
,然后通过{{1}从那里传递到新表单}}。但是,正如我已经阅读并注意到的那样,因为在运行时期间无法将类型传递给Generic,所以似乎不可能。
我希望实现(失败):
click_event
因此,能够做到这一点的最佳和最有效的方法是什么,如果可能的话,我会很感激。
答案 0 :(得分:1)
创建一个单独的对象来存储您登录的用户......
会更简单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;
显然你需要围绕这个实现你自己的业务规则,但这个概念正是我试图在这里得到的,一个可以从任何地方访问的用户的静态单个实例。