25

我遵循了一个非常简单的 MVVM 示例作为我的程序的基础。作者在主页中使用了一个代码隐藏指令来设置DataContext. 我想我应该能够在 XAML 中做到这一点。MainWindowViewModel 位于 ViewModels 目录中。背后的代码有效。

namespace RDLfromSP
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
            DataContext = new ViewModels.MainWindowViewModel();
        }
    }
}

我似乎无法在 XAML 中找到正确的组合来设置它

<Window x:Class="RDLfromSP.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="300" Width="300" > 

    <Window.DataContext>
        <local:ViewModels.MainWindowViewModel />
    </Window.DataContext>

在此先感谢您的帮助

4

1 回答 1

75

您需要一个到命名空间的 xml 命名空间映射ViewModels。添加后,它将是:

<Window.DataContext>
    <vms:MainWindowViewModel />
</Window.DataContext>

(这是假设您映射vms到适当的命名空间。)

这应该看起来就像您当前的名称空间映射一样local:,但调用vms:时指定了适当的名称空间。

于 2012-06-14T22:17:30.903 回答