la liaison à une propriété d'un objet
Je veux lier un série de zones de texte dans une grille en propriétés d'un objet qui est lui-même un autre bien dans mon ViewModel (le DataContext).
CurrentPerson
se compose de Name
et Age
propriétés
À l'intérieur du ViewModel:
public Person CurrentPerson { get; set ... (with OnPropertyChanged)}
Xaml :
<TextBox Text="{Binding Name}" >
<TextBox Text="{Binding Age}" >
Je n'étais pas sûr de la méthode à utiliser, j'ai mis un autre DataContext dans la grille de la portée, sans aucun résultat, a Également essayé la définition de la source et le chemin d'accès comme Source=CurrentPerson, Path=Âge à nouveau sans aucun résultat, ils ont été pour l'essai et voir si il n'y aurait aucun changement ou pas.
Comment dois-je faire ?
OriginalL'auteur LastBye | 2013-03-25
Vous devez vous connecter pour publier un commentaire.
Votre
Person
les membres de la classeName
etAge
élever INPC eux-mêmes?Si vous souhaitez mettre à jour la valeur de
Name
ouAge
dans leViewModel
et ont un reflet dans la vue, vous en aurez besoin pour élever des biens modifié individuellement à l'intérieur dePerson
classe.Les liaisons sont bien, mais la vue est à peu près pas notifié des changements à partir de la vue modèle. Rappelez-vous aussi
UpdateSourceTrigger
pour unTextBox
par défaut estLostFocus
, en le Définissant àPropertyChanged
mise à jour de votre chaîne dans leViewModel
que votre frappe.Exemple Simple:
Maintenant votre xaml serait:
ou vous pouvez également lier comme suggéré par @Kshitij
et à la mise à jour du modèle de vue que votre frappe
OriginalL'auteur Viv
Essayez ceci:
Essentiellement, vous pouvez explorer les propriétés à l'aide de la
.
séparateur.Référence pour l'avenir, si vous voulez descendre dans les collections, vous pouvez utiliser
MyCollection[x]
comme vous le feriez dans le code (où x peut être remplacé par un codées en dur nombre, pas une variable).Semble de la Notification de la modification ne sera pas agir de cette façon. Est-il vrai ? comment dois-je résoudre ce problème?
Ne fonctionne pas pour moi encore. je ne sais pas pourquoi...
OriginalL'auteur K Mehta