c# - 在 XAML 中设置 <Window.DataContext>

标签 c# wpf xaml mvvm datacontext

我遵循一个非常简单的 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>

预先感谢您的帮助

最佳答案

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

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

(假设您将 vm 映射到适当的命名空间。)

这应该与 local: 当前的命名空间映射类似,但称为 vms: 并指定了适当的命名空间。

关于c# - 在 XAML 中设置 <Window.DataContext>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11041976/

相关文章:

wpf - 对 WPF 中的绑定(bind)控件进行强制验证

c# - ListView 模板内的 ListView 不允许我绑定(bind)到父项 ItemsSource

javascript - 是否允许在 Windows Phone 8.1 应用程序的 webview 的 html 文件中包含外部 javascript 文件?

c# - Windows Store App ListView 闪烁/内容消失

c# - WinForms ListView.HideSelection 属性没有效果?

javascript - 在 .Net Core 布局 View 中以编程方式包含 Css 和 Js 文件

c# - 发生异常时,我应该如何处理 C# 应用程序中的退避或 "Wait and Retry"逻辑?

c# - WPF DataGridTemplateColumn 组合框更新所有行

silverlight - 在 Silverlight 中,如何根据在列表框中选择的项目设置启用按钮的启用状态?

c# - 创建一个简单的异步工作流事件