web-dev-qa-db-fra.com

Définition de <Window.DataContext> en XAML

J'ai suivi un exemple MVVM très simple comme base de mon programme. L'auteur avait un code derrière l'instruction qu'il a utilisé dans la page principale pour définir le DataContext. Je pense que je devrais être capable de faire cela dans le XAML à la place. Le MainWindowViewModel se trouve dans un répertoire ViewModels. Le code derrière fonctionne.

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

Je n'arrive pas à trouver le bon combo pour le définir à la place dans le 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>

Merci d'avance pour votre aide

25
David Beck

Vous aurez besoin d'un mappage d'espace de noms xml vers l'espace de noms ViewModels. Une fois que vous l'ajoutez, ce serait:

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

(Cela suppose que vous mappez vms à l'espace de noms approprié.)

Cela devrait ressembler à votre mappage d'espace de noms actuel pour local:, mais appelé vms: avec l'espace de noms approprié spécifié.

72
Reed Copsey