0

我发现自己陷入了这个似乎根本没有解决办法的小问题。我正在尝试将其设置为DataContextWPFWindow项目中的一个,如下所示:

在此处输入图像描述

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为 的 ViewModel Window,但是 VS 似乎没有找到包含该类的文件夹。因此,当我尝试添加Window.DataContext类似内容时:

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

VS 显然告诉我该类不存在。

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

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

预先感谢您的帮助。

4

1 回答 1

0

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

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

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

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

谢谢大家的帮助!

于 2018-11-01T10:44:10.007 回答