我如何通过WPF中的App.Current从主App.xaml.cs类获得非静态字段?



我需要从App.xaml.cs类获得一个非静态字段,但我不知道如何。

这是我的代码从App.xaml.cs包含IsUserLoggedIn字段:

public partial class App : Application
{
internal bool IsUserLoggedIn { get; private set; }
}

,这是代码调用EventTable.cs类的IsUserLoggedIn字段:

internal class EventTable
{
private void UpdateEvents()
{
if (App.Current.IsUserLoggedIn) // here is an error: "Applcation"
{                               // does not contain the definition
// of "IsUserLoggedIn"
}
}
}

App.Current是与Application.Current相同的静态属性,并且声明了Application类型。您需要将其强制转换为App。我建议这样做:

public partial class App : Application
{
internal bool IsUserLoggedIn { get; private set; }
public static App Instance
{
get { return Current as App; }
}
}

则在condition中使用:

internal class EventTable
{
private void UpdateEvents()
{
if (App.Instance.IsUserLoggedIn)
{
}
}
}

相关内容