我有公共静态属性" inDevMode"在我的WPF项目的主窗口中,我在启动应用程序时基于命令行参数设置此属性。
MainWindow mainWindow = new MainWindow();
if (startInDevMode)
{
MainWindow.inDevMode = true;
}
mainWindow.Show();
" MainWindow"花括号内没有突出显示为灰色(其他两个类型引用),编译时我收到此消息:
'窗口'不包含' inDevMode'的定义没有扩展方法' inDevMode'接受类型' Window'的第一个参数。可以找到(你错过了使用指令或程序集引用吗?)
如果我将大括号内的内容更改为实例引用(如下所示),我在访问静态属性时知道错误:
MainWindow mainWindow = new MainWindow();
if (startInDevMode)
{
mainWindow.inDevMode = true;
}
mainWindow.Show();
我收到此错误:
会员' MainWindow.inDevMode'无法使用实例引用访问;使用类型名称来限定它
但是如果我改变" mainWindow"的标识符。实例到" MainWindow"如下所示我没有错误?
MainWindow MainWindow = new MainWindow();
if (startInDevMode)
{
MainWindow.inDevMode = true;
}
MainWindow.Show();
和大括号内的类型引用(" MainWindow")现在是灰色的
答案 0 :(得分:3)
MainWindow是Application
类的一个属性,它返回Window
,并且此类型没有“inDevMode”属性。这就是你得到错误的原因。您有命名冲突。
您可以使用命名空间限定MainWindow
类型的名称,以便能够设置静态属性:
MainWindow mainWindow = new MainWindow();
if (startInDevMode)
{
WpfApplication1.MainWindow.inDevMode = true;
}
mainWindow.Show();