Это не работает, потому что ваш словарь рассматривается не как словарь, а как IEnumerable<KeyValuePair<string, bool>>
.Таким образом, каждый RibbonMenuItem
связан с KeyValuePair<string, bool>
со свойствами только для чтения Key
и Value
.
. Вы можете сделать два одно s :
1. Используйте ObservableCollection<Tuple<string, bool>>
вместо словаря и привяжите IsChecked
к Item2
.
2. Создайте небольшой вспомогательный класс, содержащий свойство IsChecked
, и измените ваш словарьчтобы содержать этот класс в качестве значения и связать IsChecked
с Value.IsChecked
.
Я бы пошел с ответом два, потому что необходимые изменения и возможные побочные эффекты меньше.
Мой ответ предполагает, что вы хотитеиметь двухстороннюю привязку IsChecked
.Если нет, воспользуйтесь ответом Слагстера.