2012-06-14 3 views
18

Ich folgte einem sehr einfachen MVVM Beispiel als Grundlage für mein Programm. Der Autor hatte einen Code hinter der Anweisung, die er auf der Hauptseite verwendete, um DataContext zu setzen. Ich denke, dass ich das in der XAML stattdessen tun könnte. Das MainWindowViewModel befindet sich in einem Verzeichnis ViewModels. Der Code dahinter funktioniert.Einstellung von <Window.DataContext> in XAML

namespace RDLfromSP 
{ 
    /// <summary> 
    /// Interaction logic for MainWindow.xaml 
    /// </summary> 
    public partial class MainWindow : Window 
    { 
     public MainWindow() 
     { 
      InitializeComponent(); 
      DataContext = new ViewModels.MainWindowViewModel(); 
     } 
    } 
} 

Ich kann nicht scheinen, um die richtige Combo zu finden, sie zu setzen, anstatt in der 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> 

Vielen Dank im Voraus für Ihre Hilfe

Antwort

58

Sie erhalten eine XML-Namespace-Mapping müssen der ViewModels Namensraum. Sobald Sie hinzufügen, dass wäre es:

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

(Dies wird vorausgesetzt, Sie vms auf den entsprechenden Namespace abzubilden.)

Dies sollte wie Ihre aktuellen Namespace-Mapping aussehen nur für local:, aber genannt vms: mit der entsprechender Namespace angegeben

+0

Vielen Dank das hat den Trick gemacht. –

+23

@DavidBeck Wenn etwas funktioniert, sollten Sie normalerweise auf das kleine Kontrollkästchen neben der Antwort klicken, um es als "Antwort" zu markieren. Dies wird Ihrem Konto im Laufe der Zeit helfen, da es zeigt, dass Ihre Fragen beantwortet werden später ;) –

Verwandte Themen