2012-06-14 17 views
18

Seguí un ejemplo de MVVM muy simple como base para mi programa. El autor tenía un código detrás de las instrucciones que usó en la página principal para establecer el DataContext. Estoy pensando que debería ser capaz de hacer esto en el XAML en su lugar. MainWindowViewModel está en un directorio ViewModels. El código detrás funcionaConfiguración <Window.DataContext> en XAML

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

Me parece que no puede encontrar la combinación correcta para ponerlo en su lugar en el 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> 

Gracias de antemano por su ayuda

Respuesta

58

Usted necesitará un espacio de nombres XML de mapeo de el espacio de nombre ViewModels. Una vez que añadir que, sería:

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

(Esto es suponiendo asigna vms al espacio de nombres correspondiente.)

Esto debería ser igual que su asignación de espacio de nombres actual para local:, pero llama vms: con el espacio de nombres apropiado especificado.

+0

Muchas gracias, este fue el truco. –

+23

@DavidBeck Normalmente, cuando algo funciona, debe hacer clic en la pequeña casilla de verificación al lado de esa respuesta para "marcarla como la respuesta": esto ayudará a su cuenta en el tiempo, ya que muestra que sus preguntas reciben respuesta cuando usted las pregunta luego ;) –