2012-10-18 84 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

相關問題