首页 > 解决方案 > 从 MainWindow.xaml.cs 类,为什么我无法访问 App.xam.cs 类的自定义属性

问题描述

MainWindow.xaml.cs课堂上,当试图访问我NameApp.xaml.cs课堂上的财产时,我收到了错误:

“应用程序”不包含“名称”的定义。

为什么?

备注:我正在处理与此类似的场景。但是作者使用的是全局变量,而且我们知道,在大多数情况下,使用属性优于全局变量。所以,在我的情况下,我正在尝试财产。

应用程序.xaml.cs

public partial class App : Application
{
    private string[] name;
    public string[] Name
    {
        get { return name; }
        set { name = value; }
    }
}

MainWindow.xaml.cs

public partial class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();
        string[] myArray = App.Name //VS2019 Intellisense gives the error: 'App' does not contain a definition for 'Name'
    }
}

标签: c#wpfxaml

解决方案


您需要将 Name 属性设为静态,因为它看起来根本不像在 MainWindow 类中实例化 App 类。

......
......
public partial class App : Application
{
    private static string[] name;
    public static string[] Name
    {
        get { return name; }
        set { name = value; }
    }
......
......
}

推荐阅读