2012-06-14 42 views
18

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

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> 

在此先感谢您的帮助

回答

58

你需要一个XML命名空间映射命名空间为ViewModels。一旦你添加的是,这将是:

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

(这是假设你映射vms到相应的命名空间。)

这看起来就像为local:当前的命名空间映射,但与所谓的vms:指定适当的名称空间。

+0

非常感谢,这没有把戏。 –

+23

@DavidBeck通常情况下,当某些东西有效时,您应该点击该答案旁边的小复选框以将其标记为答案 - 这将有助于您的帐户随着时间的推移,因为它表明您的问题在您提问时得到了答案后来;) –