我有一个 WPF 应用程序。在 App.xaml.cs 文件中我有这个
public static App Instance
{
get
{
return App.Current as App;
}
}
我使用的是 MVVM LightToolkit,之后安装了 TimePunchWPFLibrary。调出 TimePunch 具有我需要的所有来自 MVVM 的东西,所以我使用 NuGet 删除了 MVVM。现在由于某种原因,我总是将 Instance 属性设置为 null。这是为什么?嗯,我调试了一下,从现在开始,App.Current属性不是来自App类型,而是XamlGeneratedNamespace.GeneratedApplication。谁能告诉我为什么?
附言我不确定删除 MVVM Light Toolkit 是否做到了这一点,但它是同时发生的。
更新:我已经弄明白了!问题是 App.xaml 中缺少我的 x:Class 定义。这导致没有任何来自 App.xaml.cs 的启动代码被执行,并且生成的应用程序有点像虚拟应用程序。
最佳答案
这对你有用吗?我在我的 WPF 应用程序中使用它。
Application.Current
来自微软:
Application 是每个 AppDomain 单例类型,它实现静态 Current 属性以提供对当前 AppDomain 的 Application 实例的共享访问。这种设计保证了由应用程序管理的状态(包括共享资源和状态)可从单个共享位置获得。此属性是线程安全的,可从任何线程获得。
关于c# - WPF App 变成 GeneratedApplication,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18546120/