WPF de liaison de zone de texte à l'entrée de dictionnaire
j'essaie de lier un wpf zone de texte à un dictionnaire placé dans un viewmodel. Le viewmodel est utilisé comme datacontext de la vue.
J'ai trouvé beaucoup d'exemples et cela paraît simple, mais il ne fonctionne pas pour moi.
Vue:
TextBox x:Name="txbTest" de la Grille.Ligne="10" De La Grille.Column="2" Text="{Binding MyDict[First]}"
ViewModel:
public Dictionary<string, string> MyDict = new Dictionary<string, string>
{
{"First", "Test1"},
{"Second", "Test2"}
};
J'ai essayer toutes les variantes que j'ai trouvé
Text="{Binding MyDict[First]}"
Text="{Binding Path=MyDict[First]}"
Text="{Binding MyDict[First].Text}"
Text="{Binding MyDict[First].Value}"
Mais rien ne fonctionne, la zone de texte est vide. Une idée?
Vous ne pouvez pas lier à un champ. Définir
Évidemment, il peut être si facile. Merci, ça fonctionne. J'ai été guidé échec par quelques exemples.
MyDict
comme une propriété. J'ai partagé l'exemple de code dans ma réponse.Évidemment, il peut être si facile. Merci, ça fonctionne. J'ai été guidé échec par quelques exemples.
OriginalL'auteur user2377283 | 2013-08-09
Vous devez vous connecter pour publier un commentaire.
Il y a une Liaison erreur dans votre code, car
MyDict
n'est pas une propriété. Vous avez à se lier à unProperty
et non pas à unField
Changer le MyDict
Field
à unProperty
comme indiqué ci-dessousDans le constructeur de votre
ViewModel
initialiser MyDict.Les deux variantes suivantes ne fonctionneront pas comme MyDict["clé"] renvoie une
string
etstring
ne dispose pas d'unText
ouValue
de la propriété. Les deux autres variantes devrait fonctionner.Votre accueil!. Accepter la réponse si vous l'avez trouvé utile.
Comment voulez-vous faire par programmation? Dire que j'ai créer dynamiquement la zone de texte et le dictionnaire.
OriginalL'auteur Anand Murali