2011-04-11 92 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文件重命名爲不同的內容,現在該項目再次編譯。

相關問題