如何传递Generic并从Generic传递到另一个类?

时间:2014-01-27 15:08:23

标签: c# wpf xaml generics generic.xaml

当我登录我的应用程序时,我将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_eventclick_event打开另一个表单的新窗口。

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

我希望实现(失败)

click_event

因此,能够做到这一点的最佳和最有效的方法是什么,如果可能的话,我会很感激。

1 个答案:

答案 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;

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