J'ai une zone de liste dont le ItemsSource
est défini sur Dictionary(Of String, ColumnMetadata)
. ColumnMetadata
est une structure. Je peux facilement obtenir le DisplayMemberPath
pour montrer les clés en le réglant sur "Key"
, mais je n'arrive pas à comprendre comment le montrer à un membre de ma structure.Définition de DisplayMemberPath à la valeur de structure d'un dictionnaire Membre
J'ai essayé paramètres DisplayMemberPath
à "{Binding LocalizedColumn}"
, "Value.LocalizedColumn"
, "LocalizedColumn"
, "{Value.LocalizedColumn}"
et aucun de ces œuvres. Je reçois juste un tas de lignes vides dans ma liste.
Tout ce que je cherche à accomplir est d'obtenir les données dans la liste. Je ne suis pas concerné par les mises à jour du dictionnaire et le dictionnaire ne sera pas mis à jour après que la liste soit remplie.
Le code que je suis maintenant est activé lors de l'exécution:
lstDatabaseColumns.ItemsSource = ImportData.GetAddressFieldData
lstDatabaseColumns.DisplayMemberPath = "Value.LocalizedColumn"
lstDatabaseColumns.SelectedValuePath = "Key"
Ma structure ressemble:
Public Structure ColumnMetadata
Dim LocalizedColumn As String
Dim Description As String
End Structure
Je reçois le message suivant dans ma fenêtre de sortie:
System.Windows.Data Error: 40 : BindingExpression path error: 'LocalizedColumn' property not found on 'object' ''ColumnMetadata' (HashCode=1118531966)'. BindingExpression:Path=Value.LocalizedColumn; DataItem='KeyValuePair`2' (HashCode=-1578744570); target element is 'TextBlock' (Name=''); target property is 'Text' (type 'String')
le correct 'DisplayMemberPath' est" Value.LocalizedColumn ". Si cela ne fonctionne pas, vérifiez la fenêtre de sortie dans VS pour les erreurs de liaison –