在XAML中设置<Window.DataContext>

Dav*_*eck 24 wpf datacontext mvvm

我按照一个非常简单的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();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我似乎无法在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>
Run Code Online (Sandbox Code Playgroud)

在此先感谢您的帮助

Ree*_*sey 69

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

<Window.DataContext>
    <vms:MainWindowViewModel />
</Window.DataContext>
Run Code Online (Sandbox Code Playgroud)

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

这应该与您当前的命名空间映射类似local:,但是vms:使用指定的相应命名空间进行调用.

  • @DavidBeck通常情况下,当某些内容有效时,您应该点击该答案旁边的小复选框以"将其标记为答案" - 这将有助于您的帐户随着时间的推移,因为它表明您的问题会在以后询问时得到解答;) (30认同)