9

我以前在我的 WPF 应用程序项目中有一个名为“控件”的子文件夹。它包含一个 WPF 用户控件。我决定将该用户控件移动到我的“视图”文件夹中。由于原始文件夹是空的,我决定将其从项目中删除。

因为删除了用户控件和文件夹,我收到一个编译错误,因为用户控件使用了ProjectName.Folder命名空间,现在没有任何引用它。MainWindow.g.cs 是ProjectName.Controlsusing 语句中的引用。

我知道 *.g.cs 是由 VS 生成的,不能编辑,因为它会被覆盖。我该怎么做才能不允许将该命名空间写入 g.cs 文件?我尝试清理我的解决方案/项目并重建,但没有任何效果。

4

6 回答 6

11

我的 Xaml 代码 (MainWindow.xaml) 中有一个对 Controls 命名空间的本地引用。我删除了引用,清理了项目并成功构建。

于 2010-11-17T16:07:30.060 回答
5

在您的用户控制文件中,

在您的 ClassName.xaml 中,您必须更改命名空间,如下所示

<UserControl
    x:Class="YourOldNamespace.ClassName"
    ...
    ...
/>

在您的 ClassName.xaml.cs 中,您必须更改命名空间,如下所示

using System;
using System.Windows;

namespace YourOldNamespace{

   public class ClassName{ ....

}

在这两个文件中,您必须根据需要将 YourOldNamespace 替换为某个新的命名空间。

于 2010-11-18T09:03:34.193 回答
1

我以前在我的项目中也遇到过 g.cs 文件的问题。由于它们是自动生成的,我倾向于手动删除文件并重建。

于 2010-11-17T16:12:01.317 回答
1

也不要忘记,当您单击受影响的 XAML 文件时,您必须检查 Build Action 属性是否设置为 PAGE(而不是资源)。这有助于了解何时使用复制粘贴从另一个项目复制 XAML 以节省时间。

于 2012-02-02T12:40:35.913 回答
1

另请查看 App.xaml 和所有资源字典。无论出于何种原因,VS 2012 的文件替换/“整个解决方案”选项都没有在 App.xaml 中找到旧的命名空间引用,必须手动更改它。为我修好了。

于 2013-09-19T20:43:13.053 回答
0

不要忘记也更改您的 Generic.xaml 文件,

<ResourceDictionary 
                   xmlns:local="clr-namespace:MyOldNameSpace">
</ResourceDictionary>
于 2014-08-08T19:53:16.367 回答