в моем MVVM-приложении у меня есть SortedList как свойство модели:
public SortedList<Geschäftsjahr, Stückzahl> IstStückzahlListe
{
get
{
return istStückzahlListe;
}
set
{
if (istStückzahlListe == value)
{
return;
}
istStückzahlListe = value;
}
}
А теперь я хочу привязать один элемент этого SortedList к одному столбцу DataGrid. Для этого я создаю для каждой KeyValuePair объект DataGridColumn-Object с определенной привязкой:
foreach(KeyValuePair<Geschäftsjahr, Stückzahl> kvp in IstStückzahlListe)
{
cols.Add(new DataGridTextColumn {
Header = kvp.Key,
Binding = new Binding(String.Format("IstStückzahlListe[" + kvp.Key + "].Number"))
});
}
Кроме того, я думаю, что важно знать, что объект Geschäftsjahr состоит из двух отдельных лет (например: 2017/18), а метод ToString () возвращает данные именно в этом формате.
К сожалению, DataGridColumn пуст ...
Спасибо,
Николас
В окне вывода несколько раз отображается следующая ошибка: System.Windows.Data Error: 40 : BindingExpression path error: '[]' property not found on 'object' ''ValueList' (HashCode=48701244)'. BindingExpression:Path=IstStückzahlListe.[2017/18].GeschäftsjahresWert; DataItem='Baugröße' (HashCode=66729601); target element is 'TextBlock' (Name=''); target property is 'Text' (type 'String')
Я думаю, это связано с ключом, который я использую для доступа к SortedList. Но я не знаю, каким должен быть ключ.
Похоже, ключ - null. Попробуйте отладить и посмотрите, какое значение он возвращает.





«К сожалению, DataGridColumn пуст ...» - это наводит на мысль, что привязка неверна. В окне вывода должны отображаться предупреждения о сбое привязки, вы должны проверить этот вывод.