名称 <...> 在命名空间 <...> 中不存在

The name <...> does not exist in the namespace <...>

我发现自己陷入了这个似乎根本无解的小问题。我试图在 WPF 项目中将 DataContext 设置为 Window,如下所示:

XAML 文件:

<Window x:Class="CSB.Tasks.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:local="clr-namespace:CSB.Tasks"
    xmlns:vm="clr-namespace:CSB.Tasks.ViewModels.WPF" <!-- This is what i need -->
    mc:Ignorable="d"
    Title="MainWindow" 
    Height="350" 
    Width="525">

<WindowChrome.WindowChrome>
    <WindowChrome ResizeBorderThickness="{Binding ResizeBorderThickness}"
                  GlassFrameThickness="0"
                  CornerRadius="{Binding CornerRadius}"/>
</WindowChrome.WindowChrome>

<StackPanel Margin="5">

</StackPanel>

我想将WindowViewModel设置为Window的ViewModel,但是VS好像找不到class所在的文件夹。所以,当我尝试添加 Window.DataContext 时:

<Window.DataContext>
    <vm:WindowViewModel/>
</Window.DataContext>

VS明明告诉我class不存在

我一直在搜索关于 SO 的类似问题,我发现了很多,但实际上没有人帮助我。我已经尝试重启 VS,清理并重建项目,在特定目标平台上编译(现在它设置为 Any CPU),移动根文件夹中的 ViewModel 然后将其移回,绝对没有变化。

有谁知道可能是什么原因吗?

提前感谢您的帮助。

我实际上设法将 DataContext 添加到 MainWindow XAML。 ViewModel 的命名空间被设置为 CSB.Tasks 以便全局访问它,但即使使用本地 xmlns 我也无法引用它。我不得不根据项目文件夹中的实际路径更改 ViewModel 的命名空间,因此:

namespace CSB.Tasks.ViewModels.WPF
{
   public class WindowViewModel : BaseViewModel
   {
       ...
   }
}

为了设置xmlns:vm并在DataContext声明中使用它。然后我将 ViewModel 命名空间切换回 CSB.Tasks 并重新编译项目,由于某种原因,在 XAML 编辑器中我可以从 [=20= 访问 WindowViewModel ].

我不太清楚这是否是错误。

谢谢大家的帮助!