2011-07-08 66 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内的部分。

希望它可以帮助那里的人!

相关问题