Флажок привязки WPF MVVM. Проверяется на именованный элемент в словаре <string, bool> - PullRequest
5 голосов
/ 14 апреля 2009

У меня есть группа флажков, которые все представляют разные варианты выбора одного и того же типа (для моего примера, они все разные типы файлов). Я чувствую, что привязывать каждое из них к отдельному свойству в ViewModel излишне, и я бы предпочел привязать их все к одной коллекции и использовать синтаксис привязки для привязки каждого флажка к определенному элементу в коллекции по ключу. Я пытаюсь придерживаться шаблона MVVM, поэтому я не хочу просто лениться и обрабатывать событие Checked или что-то в этом роде.

Есть ли способ выразить путь или ключ в коллекции, используя синтаксис привязки WPF? Например, если я предоставляю Dictionary<string, bool> с именем FileTypes как открытое свойство в ViewModel, есть ли способ привязать один из флажков к FileTypes ["aspx"]? Что если бы у меня была более сложная структура данных, такая как Dictionary<string, Dictionary<string, int>>?

1 Ответ

3 голосов
/ 14 апреля 2009

У вас почти это было - просто бросьте кавычки вокруг аргумента индексатора:

{Binding FileTypes[aspx]}

Более сложная структура данных просто требует последовательности индексаторов, например,

{Binding Foo[aspx][Bar]}

Кстати, хороший ресурс для этого материала находится в MSDN, в разделе WPF> Данные> Привязка данных> Обзор объявлений привязки - прокрутите вниз до «Синтаксис пути привязки», чтобы получить сводку обозначений и соглашений, которые вы можете использовать в путь привязки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...