我将一个silverlight文件(xaml)移动到另一个项目,现在该文件的后面代码无法识别控件。
xaml.cs文件没有看到xaml文件中的控件
我已经更新了命名空间,但这没有帮助。
我已经将类名更新为相同,但仍无效。
Intelisence没有拿起控件。
有什么想法吗?我也尝试删除cs文件,但没有“自动重新创建cs文件”的选项
谢谢!
答案 0 :(得分:6)
在VS2010中,检查xaml文件的属性。它的Build Action应该是“Page”,它的Custom Tool应该是“MSBuild:Compile”。还要检查xaml中的x:Class
元素是否包含与代码隐藏.xaml.cs文件中的命名空间和类名匹配的正确完全限定名称。
答案 1 :(得分:2)
XAML文件基本上生成了一个部分类。后面的代码是另一个具有相同名称的部分类。不能在两个不同的项目中声明一个类,这就是你正在做的事情。
答案 2 :(得分:1)
我有同样的问题。我发现Build Action已更改为Application definition。将其更改为Page后,删除obj文件夹,一切正常。 谢谢。
答案 3 :(得分:0)
您是否检查过XAML文件的命名空间/类名和代码隐藏?在将XAMl文件移动到另一个项目时,我经常忘记更改代码隐藏文件中的命名空间。
答案 4 :(得分: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中的部分。
希望有人帮助那里的人!