Liaison simple WPF + MVVM

J’ai une classe nommée MyWindow dérive de Window . J’utilise le modèle MVVM donc dans code-behind j’ai le champ suivant:

 public MyViewModel ViewModel = new MyViewModel(); 

ViewModel contient une collection de Person et tout ce que j’aimerais faire, c’est de lier un ComboBox à cette collection, en Person.Name comme en-tête pour chaque Person .
J’aimerais également avoir un autre champ dans ViewModel qui sera lié aux données de l’élément sélectionné.

Aidez-moi, s’il vous plaît.

Eh bien, premièrement, vous devez définir le contexte de la fenêtre de votre fenêtre sur viewmdodel dans le constructeur si vous ne l’avez pas déjà fait:

 this.DataContext = MyModelView; 

Ensuite, vous pouvez définir la ComboBox comme suit:

  

Lorsque Personnes est la collection de personnes et la personne actuelle est le bien auquel la personne sélectionnée sera liée.

  1. Affectez modelView à la propriété MyWindow.DataContext. Cela le rend disponible pour la liaison de données.
  2. Définissez la liaison de données dans la liste déroulante xaml comme ceci:

Cela suppose que votre modelView a une propriété PersonCollection qui est une collection d’objects Person, un nom de propriété sur l’object Person et une propriété SelectedPerson sur le modelView de type Person.