У меня есть список со значением ItemsSource
, установленным на Dictionary(Of String, ColumnMetadata)
. ColumnMetadata
это структура. Я легко могу заставить DisplayMemberPath
показывать ключи, установив его на "Key"
, но я не могу понять, как заставить его показывать член моей структуры.
Я пробовал настройки DisplayMemberPath
до "{Binding LocalizedColumn}"
, "Value.LocalizedColumn"
, "LocalizedColumn"
, "{Value.LocalizedColumn}"
и ничего из этого не работает. Я просто получаю кучу пустых строк в своем списке.
Все, чего я хочу добиться, это передать данные в список. Меня не интересуют какие-либо обновления в словаре, и словарь не будет обновляться после заполнения списка.
Код, который у меня есть, активируется во время выполнения:
lstDatabaseColumns.ItemsSource = ImportData.GetAddressFieldData
lstDatabaseColumns.DisplayMemberPath = "Value.LocalizedColumn"
lstDatabaseColumns.SelectedValuePath = "Key"
Моя структура выглядит так:
Public Structure ColumnMetadata
Dim LocalizedColumn As String
Dim Description As String
End Structure
Я получаю следующее сообщение в моем окне вывода:
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')