2011-07-08 67 views
3

我將silverlight文件(xaml)移動到不同的項目,現在代碼後面的文件無法識別控件。將silverlight文件(xaml)移動到不同的項目,現在後面的代碼無法識別控件

xaml.cs文件沒有看到控制在XAML文件

我已經更新了命名空間,但是這並沒有幫助。

我已經更新類名是相同的,仍然沒有幫助。

Intelisence不提取控件。

任何想法?我試着刪除cs文件,但沒有選項「自動重新創建cs文件」

謝謝!

回答

6

在VS2010中檢查xaml文件的屬性。其構建操作應該是「頁面」,其自定義工具應該是「MSBuild:編譯」。還要檢查xaml中的x:Class元素是否包含與代碼隱藏的.xaml.cs文件中的名稱空間和類名相匹配的正確完全限定名。

+0

我將構建操作更改爲「頁面」。自定義工具已被設置爲「MSBuild:編譯」。我三重檢查了完全合格的姓名和職業名稱,他們都是正確的。再建議?我的同事說可能在其他地方有一個「共享」文件,需要進行編輯,因爲.cs文件是「部分類」。這是真的? – Kukoy

+1

@Fritos:「共享」文件是.g.i.cs文件,當這些設置正確時應該自動生成。你是如何「移動」xaml文件的?你把它移到什麼類型的項目? – AnthonyWJones

+0

我複製了xaml文件,然後粘貼到另一個項目中。我如何訪問這個.g.i.cs文件?我無法在文件系統中看到它。 – Kukoy

2

XAML文件基本上會生成一個部分類。文件後面的代碼是另一個具有相同名稱的分部類。一個類不能在兩個不同的項目中聲明,這就是你正在做的。

+0

文件(xaml.cs)後面的代碼設置爲公共部分類。你是說不應該有一個xaml.cs文件? – Kukoy

+1

不,我是說如果有.xaml.cs,它必須與XAML位於同一個項目中。 –

+0

它在同一個項目中 – Kukoy

0

您是否檢查過XAML文件的名稱空間/類名和代碼隱藏?我經常忘記在將XAMl文件移動到另一個項目時更改代碼隱藏文件中的命名空間。

+0

是的,我複製並粘貼這些名稱只是爲了確保。 – Kukoy

1

我有同樣的問題。我發現生成操作已更改爲應用程序定義。將其更改爲Page並刪除obj文件夾後,一切正常。 謝謝。

0

我在WPF項目中有類似的問題。有一兩件事我注意到的是,如果你把東西就像節以下內容:

<x:Array Type="sys:String" x:Key="RuleBinaryOperatorList" xmlns:sys="clr-namespace:System;assembly=mscorlib"> <sys:String>AND</sys:String> <sys:String>OR</sys:String> </x:Array>

它使沒有識別出相應的XAML文件不是可編譯和抱怨的InitializeComponent。解決方法是將這些資源放入App.xaml內的部分。

希望它可以幫助那裏的人!

相關問題