WPF binding Textfeld zum Wörterbuch-Eintrag
ich versuche, Sie zu binden eine wpf textbox, um ein Wörterbuch, platziert in einem viewmodel. Das viewmodel als datacontext der view.
Ich fand eine Menge Beispiele, und es klingt simpel, aber es funktioniert nicht für mich.
Anzeigen:
TextBox x:Name="txbTest" Raster.Row="10" Grid.Spalte="2" Text="{Binding MyDict[Vorname]}"
ViewModel:
public Dictionary<string, string> MyDict = new Dictionary<string, string>
{
{"First", "Test1"},
{"Second", "Test2"}
};
Ich versuche alle Varianten, die ich gefunden
Text="{Binding MyDict[First]}"
Text="{Binding Path=MyDict[First]}"
Text="{Binding MyDict[First].Text}"
Text="{Binding MyDict[First].Value}"
Aber nichts funktioniert, die textbox leer ist. Irgendeine Idee?
- Sie kann nicht binden an ein Feld. Definieren
MyDict
als Eigenschaft. Ich haben gemeinsam den Beispielcode in meine Antwort. - Offensichtlich, es kann so einfach sein. Vielen Dank, es funktioniert. Ich wurde geführt, scheitern durch einige Beispiele.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es eine Verbindliche Fehler in Ihrem code, da
MyDict
ist nicht eine Eigenschaft. Sie müssen eine Bindung zu einemProperty
und nicht um eineField
Ändern Sie die MyDict
Field
zu einemProperty
wie unten gezeigtIn den Konstruktor von Ihrer
ViewModel
initialisieren MyDict.Den folgenden zwei Varianten wird nicht funktionieren, wie MyDict["key"] gibt eine
string
undstring
keinenText
oderValue
Eigenschaft. Die beiden anderen Varianten sollten funktionieren.