2012-06-14 31 views
18

Ho seguito un esempio MVVM molto semplice come base per il mio programma. L'autore aveva un codice dietro le istruzioni che usava nella pagina principale per impostare lo DataContext. Penso che dovrei essere in grado di farlo in XAML. Il MainWindowViewModel si trova in una directory ViewModels. Il codice dietro funziona.Impostazione <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(); 
     } 
    } 
} 

io non riesco a trovare la combinazione giusta per impostare invece nel 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> 

Grazie in anticipo per il vostro aiuto

risposta

58

Avrete bisogno di una mappatura XML namespace lo spazio dei nomi ViewModels. Una volta che si aggiunge che, sarebbe:

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

(Ciò presuppone si mappa vms al dominio appropriato.)

Questo dovrebbe apparire proprio come la mappatura dello spazio dei nomi corrente local:, ma chiamato vms: con la spazio dei nomi appropriato specificato.

+0

Grazie mille questo ha fatto il trucco. –

+23

@DavidBeck In genere, quando qualcosa funziona, devi fare clic sulla piccola casella di controllo accanto a quella risposta per "contrassegnarla come risposta" - questo aiuterà il tuo account nel tempo, poiché mostra che le tue domande ricevono una risposta quando le chiedi dopo ;) –