Я хотел бы привязать Dictionary<string, int>
к ListView
в WPF. Я хотел бы сделать это таким образом, чтобы Values
в Dictionary
обновлялся через механизм привязки данных. Я не хочу менять Keys
только Values
. Мне также не нужно добавлять новые сопоставления в Dictionary
. Я просто хочу обновить существующие.
Установка словаря как ItemsSource
для ListView
не выполняет этого. Это не работает, потому что ListView
использует Enumerator для доступа к содержимому Dictionary
, и элементы этого перечисления являются неизменяемыми KeyValuePair
объектами.
В моей текущей строке исследования используется свойство Keys
. Я присваиваю это свойству ItemsSource
моего ListView
. Это позволяет мне отображать Keys
, но я не знаю достаточно о механизме привязки WPF для доступа к Values
в Dictionary
.
Я нашел этот вопрос: Доступ к переменной codebehind в XAML, но по-прежнему не может устранить пробел.
Кто-нибудь из вас знает, как заставить этот подход работать? Кто-нибудь имеет лучший подход?
Кажется, что в качестве последнего средства я мог бы создать пользовательский объект и вставить его в List
, из которого я воссоздал/обновлял свой Dictionary
, но это похоже на способ обойти встроенную привязку данных а не эффективно использовать его.