2014-01-27 43 views
0

当我登录到我的应用程序时,我通过cUserEntity类,该类将登录用户的所有详细信息(包括用户标识和用户名)保存到仪表板表单。从这里开始,我可以继续将课堂细节从课堂传递到课堂,并形成形式。例如(忽略在这个例子中,通用位)如何传递给Generic并从Generic传递给另一个类?

登录:

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_eventclick_event打开另一窗体的新窗口。

现在,我需要其他表单来登录用户详细信息,为此,我假设我需要传递给Generic.Xaml,然后通过click_event从那里传递到新表单。但是,正如我已经读过并注意到的,它似乎不可能,因为在运行时无法将类型传递给Generic。

我希望能实现(这失败)

public partial class Generic 
{ 
    cUserEntity _loggedInUser; 

    public Generic(cUserEntity loggedInUser) 
    { 
     _loggedInUser = loggedInUser; 
    } 

    private void btnHelp_Click(object sender, RoutedEventArgs e) 
    { 
     xamlHelp help = new xamlHelp(_loggedInUser); 
     help.Show(); 
    } 
} 

因此,什么是最好的,最有效的方法,能够做到这一点,如果可能的话将不胜感激例子。

回答

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; 

显然,你禾uld需要围绕此实现自己的业务规则,但这个概念正是我想要在这里实现的,这是一个可以从任何地方访问的静态单个用户实例。

+0

谢谢你的回答。从来没有想过这样做,现在看来我觉得这很愚蠢。感谢帮助! – Ben

+0

不客气。 – BenjaminPaul

相关问题