【问题标题】:Setting <Window.DataContext> in XAML在 XAML 中设置 <Window.DataContext>
【发布时间】:2012-06-18 00:14:45
【问题描述】:

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

提前感谢您的帮助

【问题讨论】:

    标签: c# wpf xaml mvvm datacontext


    【解决方案1】:

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

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

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

    这应该看起来就像您当前为 local: 映射的命名空间,但称为 vms: 并指定了适当的命名空间。

    【讨论】:

    • @DavidBeck 通常,当某些事情有效时,您应该单击该答案旁边的小复选框以“将其标记为答案” - 这将随着时间的推移对您的帐户有所帮助,因为它表明您的当您稍后提出问题时,问题就会得到解答;)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-04-21
    • 1970-01-01
    • 2014-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多