2012-06-14 66 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通常情況下,當某些東西有效時,您應該點擊該答案旁邊的小複選框以將其標記爲答案 - 這將有助於您的帳戶隨着時間的推移,因爲它表明您的問題在您提問時得到了答案後來;) –