2012-10-18 88 views
3

我已将Visual Studio 2008 Professional中的C#项目移至Visual Studio 2010 Express。 它使用VS迁移向导成功转换项目,但构建失败。关于使用WPF DataGrid构建项目的Visual Studio 2010错误

有不少错误,都与WPF Datagrid有关。 VS2008内置的错误不会发生。例如:

'DataGridRow' is an ambiguous reference between 'System.Windows.Controls.DataGridRow' and 'Microsoft.Windows.Controls.DataGridRow' 

我看到该项目也使用WPFTools.dll。

随着VS2010可能WPFTools.dll不再需要?或者,也许我需要使用专业版而不是VS的Express版本,并且项目未成功迁移?

我想我可以使用完整的命名空间来编辑所有这些是问题的地方,以使错误消失,指定“Microsoft.Windows.Controls”或“System.Windows.Controls”,但我是不确定在VS2008下违约的是哪两个。

+0

你应该检查你的引用(和/或导入的命名空间)。问题是有(现在)两个引用(和/或名称空间),它们都定义了一个类(控制)DataGridRow,并且您正在导入这两个名称空间。现在如果你只说“DataGridRow”,编译器不知道要使用哪个类,你应该通过添加命名空间来提示它,或者只是删除虚假的命名空间。 – Styxxy

回答

4

这很可能与.NET FW版本相关,也就是说,这是3.5之前的版本,并且您已迁移到4版本?如果是这样的话,那么您以前一直在使用WPFToolkit,而DataGrid现在是4 and greater中的标准FW的一部分。

删除您对WPFToolkit的引用并使用标准FW类,您应该没问题。

+0

从.NET 3.5升级到.NET 4.0后,出现此问题。 WpfToolkit(例如'DataGrid')包含在.NET 4中。 解决方案是将项目引用移除到WpfToolkit.dll并移除xaml页面中的引用。 – Designpattern

相关问题