如何告诉WPF中XAML的代码生成器将我的窗口声明为;内部;?

如何告诉WPF中XAML的代码生成器将我的窗口声明为;内部;?,wpf,code-generation,window,private,Wpf,Code Generation,Window,Private,如何让WPF中XAML的代码生成器将我的窗口声明为“内部”窗口 默认情况下,当我运行VS2010创建新项目时,生成的代码被声明为“public”。我使用Autofac作为我的IoC,并且遵循通过属性注入设置ViewModel的模式。我想将我的ViewModel声明为“private”,但编译器抱怨不一致的可访问性。我可以将MainWindow.xaml.cs中的“public”更改为“internal”,但如何让生成类其余部分的代码也将MainWindow声明为“internal” 我目前拥有的

如何让WPF中XAML的代码生成器将我的窗口声明为“内部”窗口

默认情况下,当我运行VS2010创建新项目时,生成的代码被声明为“public”。我使用Autofac作为我的IoC,并且遵循通过属性注入设置ViewModel的模式。我想将我的ViewModel声明为“private”,但编译器抱怨不一致的可访问性。我可以将MainWindow.xaml.cs中的“public”更改为“internal”,但如何让生成类其余部分的代码也将MainWindow声明为“internal”

我目前拥有的代码:

public partial class MainWindom : Window
{
    public ViewModel ViewModel { get; set; }
}

public class ViewModel
{
}
我想要的代码:

internal partial class MainWindom : Window
{
    public ViewModel ViewModel { get; set; }
}

internal class ViewModel
{
}
或者我应该放弃,不使用工具,而只是随波逐流


Rick Sladkey在下面正确地指出,我不能在名称空间级别声明private,因此我将更改为“internal”。

从顶级名称空间中定义的
窗口
派生的类(所有生成的
窗口
类都是)永远不能声明
private
。尝试执行此操作将生成不同的错误:

错误CS1527:命名空间中定义的元素不能显式声明为private、protected或protected internal

所以你不可能做你想做的事。即使它是合法的,也无法从其他类访问该类

编辑


窗口可以是内部的,请阅读更多信息:

?在一个普通的C#程序中,我可以合法地执行“名称空间ns{internal class a{}internal class B{Foo(){a a a=new a();}}”。查看A是如何内部的,但B可以访问。这不是
私有的
;这是
internal
。是的,我在编辑时无意中按下了“保存编辑”按钮。您可以将其设置为内部:您可以-可能的复制