Application 对象在 wpf 的 ViewModel 中变为 null,试图访问 Application 变量
Applicaiton object is coming null in ViewModel in wpf, trying to access Application variables
我正在处理包含两个用户控件的 WPF 应用程序,我试图设置一个应用程序变量并在 viewModel 加载时分配一些值。此视图模型与我的 UserControl 绑定。
问题是如何在 wpf 中获取和设置 APPlication 变量。无论我尝试过什么,我都会在下面写下。
App.xaml.cs
public string globalText = "";
public bool isNewUser;
public App()
{
isNewUser = true;
}
MyViewModel.cs
App currentApp = Application.Current.Windows.OfType<App>().FirstOrDefault();
或
App currentApp = (App)System.Windows.Application.Current;
以上两种方法我都试过了,但在这两种方法中我都得到了 CurrentApp null。
我尝试添加一些值如下。
if(currentApp.IsNewUser)
{
CurrentApp1.globalText = "Hello World";
}
I am getting exception System.InvalidCastException
: 'Unable to cast object of type 'SecondProject.App' to type 'FirstProject.App'.' While syntax App thisApp = ((App)Application.Current);
is written in FirstProject.
如果范围内有两个 App
类,您可以使用其完全限定的类型名称引用正确的一个:
App thisApp = (FirstProject.App)Application.Current;
我正在处理包含两个用户控件的 WPF 应用程序,我试图设置一个应用程序变量并在 viewModel 加载时分配一些值。此视图模型与我的 UserControl 绑定。
问题是如何在 wpf 中获取和设置 APPlication 变量。无论我尝试过什么,我都会在下面写下。
App.xaml.cs
public string globalText = "";
public bool isNewUser;
public App()
{
isNewUser = true;
}
MyViewModel.cs
App currentApp = Application.Current.Windows.OfType<App>().FirstOrDefault();
或
App currentApp = (App)System.Windows.Application.Current;
以上两种方法我都试过了,但在这两种方法中我都得到了 CurrentApp null。
我尝试添加一些值如下。
if(currentApp.IsNewUser)
{
CurrentApp1.globalText = "Hello World";
}
I am getting exception
System.InvalidCastException
: 'Unable to cast object of type 'SecondProject.App' to type 'FirstProject.App'.' While syntaxApp thisApp = ((App)Application.Current);
is written in FirstProject.
如果范围内有两个 App
类,您可以使用其完全限定的类型名称引用正确的一个:
App thisApp = (FirstProject.App)Application.Current;