DataContext未在XAML文件中绑定

时间:2014-08-04 12:54:47

标签: c# wpf xaml mvvm

我是WPF + MVVM架构的新手。在我的应用程序中,我试图在XAML本身中实现“DataContext”,如下所示

<Window x:Class="MyWPF.UI.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:vm="clr-namespace:MyWPF.UI.ViewModel"
    Title="MainWindow" Height="350" Width="525">

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

    <Grid>
    </Grid>

</Window>

我得到“名称'Northwind_DataViewModel'在命名空间'clr-namespace中不存在:MyWPF.UI.ViewModel”。

我有ViewModel文件。在使用“DataContext”之前,我构建了这个应用程序。

您能告诉我我的代码有什么问题吗?

感谢

4 个答案:

答案 0 :(得分:0)

  

名称'Northwind_DataViewModel'在命名空间'clr-namespace中不存在:MyWPF.UI.ViewModel“。

有可能,你编译是对的。项目中没有名为MyWPF.UI.ViewModel.Northwind_DataViewModel的类。确保它存在,具有公共的无参数构造函数,不是某个内部类而不是泛型。如果是这样的话,那就可以了。

答案 1 :(得分:0)

如果 名称空间在XAML所在的单独程序集 中声明,则必须 提供程序集名称 < /强>

样品:

xmlns:sys="clr-namespace:System;assembly=mscorlib"

同样,提供此命名空间所在的程序集名称​​(假设程序集名称为MyWPF.UI)

xmlns:vm="clr-namespace:MyWPF.UI.ViewModel;assembly=MyWPF.UI"

答案 2 :(得分:0)

非常感谢您的回复。最后我得到了解决方案。实际上,这个项目被放在一个共享文件夹中。所以,我把它移到我的本地驱动器(C :)。现在,它没有任何问题,工作正常。

我想,在共享路径/共享文件夹中,它可能无效。如果我错了,请告诉我。

再次感谢。

答案 3 :(得分:0)

为了解决这个问题,您需要了解DataContext的工作原理。这个答案包含许多提示和指向支持教程的链接:

ReSharper WPF error: "Cannot resolve symbol "MyVariable" due to unknown DataContext"