2011-04-11 55 views
2

我正在构建Silverlight MVVM应用程序(使用GalaSoft MVVM光模板)。该应用程序有一些用户控件。现在我遇到了一些似乎是命名空间问题的东西。该命名空间是这样定义的:Silverlight Usercontrol clr namespace

MyApp.Controls 
-> my user controls 
MyApp.View 
-> different pages of the app (which use the user controls) 
MyApp 
-> the namespace of the main page (root namespace) 

这工作正常,只要我不放弃任何的用户控件的x的:名称。只要一个X:名称定义,以下消息的生成中断:

error CS0426: The type name 'Controls' does not exist in the type 'MyApp.MyApp' 

这就是真的奇怪了!我可以通过改变命名空间MyApp.ControlsMyAppControls或通过操纵生成的代码解决这个问题,使直接引用MyApp.Controls.MyControl被替换使用MyApp.Controls,然后实例化的使用MyControl进行控制(但是,只要我切换到设计视图,它将再次被覆盖)。

有没有人知道这种奇怪行为的原因?我会预料到这是一个非常普遍的问题?

+0

你能附上一个示例代码吗? – 2011-04-11 13:44:29

+0

对不起,这个项目相当复杂。我试图简化它,但那么问题就会消失。所以肯定有一些我忽略了的东西:-(。 – Jeldrik 2011-04-11 14:31:30

回答

1

我想我找到了原因:我也有一个名为MyApp的资源文件。这导致了MyApp类的产生,因此编译器在类MyApp和命名空间MyApp之间感到困惑。我已将Resource文件重命名为不同的内容,现在该项目再次编译。

相关问题