如何在WPF中的自定义类文件中公开应用程序

时间:2017-05-20 00:35:41

标签: c# wpf xaml

在我的项目的app.xaml.cs中,我添加了两个类型为UserProfile和ExercisePlan的成员变量。我添加了这些,以便我可以在项目范围内访问它们。在我的自定义类ExercisePlan中,我正在创建另一个UserProfile类型的成员变量。我想将此UserProfile变量设置为等于Application.Current.UserProfile。

理论上我想在我的类中设置变量等于应用程序的当前用户。当我尝试这个VS告诉我Application.Current不存在。

我已经做了类似这样的事情,但它是在.xaml.cs文件中而不是自定义类文件。

新的WPF所以,如果有更好的方法来做所有这些,请教我

namespace TrackFit_Project
{
  public partial class App : Application
  {
    #region Member Variables

    private UserProfile user;
    private ExercisePlan exercisePlan;

    #endregion
  }
}

namespace TrackFit_Project
{
  public class ExercisePlan
  {

    #region Member Variables

    // This is where my issue is
    // public UserProfile _user = Application.Current.UserProfile();

    #endregion
  }
}

1 个答案:

答案 0 :(得分:0)

TBH,听起来有点依赖注入会让你在这里走得很远...... 示例:

class foo { 
   private string my_foo;
   public void foo(string injected){ my_foo = injected; } // dependency was injected
   // more stuff
}

您可以使用类似Autofac的内容为您执行此操作,或者只需将变量传递给您的类即可手动执行此操作。
底线是一样的,你得到你需要的变量,而不依赖于其他模块,你可以在单元测试你的应用程序时轻松地模拟它们(因为你对应用程序进行单元测试,对吗?)