C # WPF привязка данных к неизвестному количеству флажков - PullRequest
1 голос
/ 08 февраля 2010

В моем приложении я генерирую флажки для каждой возможной категории (полученной из базы данных), и пользователь может проверить любое число, которое подходит. Я называю флажки «cbCategory [ID]», где ID - это идентификатор этой категории в базе данных.

Затем мне нужно сгенерировать некоторый класс коллекции (как свойство класса моего объекта) для хранения categoryID и логического значения (проверено / не отмечено).

Мой вопрос: какой класс коллекций лучше всего использовать и как мне его связать? Как будет выглядеть XAML и код для привязки?

Надеюсь, это достаточно хорошо объясняет, заранее спасибо за ответы!

1 Ответ

4 голосов
/ 08 февраля 2010
  1. Определите класс для хранения имени категории (string) и его проверенного статуса (bool).
  2. Определите коллекцию типа ObservableCollection<T>, где T - это класс, который вы только что определили в (1).
  3. Создайте ItemsControl в XAML и привяжите его свойство ItemsSource к коллекции из (2).
  4. Определите DataTemplate в XAML, в котором вы отображаете CheckBox и TextBlock, привяжите их к соответствующим свойствам вашего объекта из (1).
  5. Не забудьте установить ItemsControl.ItemTemplate на DataTemplate из (4).

Используя этот способ, вам не нужно генерировать элементы управления из кода, вам нужно сгенерировать один объект на категорию (объект, определенный в (1)).

И в качестве дополнительного примечания: всякий раз, когда вы генерируете элементы управления вручную из кода, вы делаете это неправильно, и есть более простой способ использования связывания, стилей и шаблонов (а иногда и более сложных функций, таких как присоединенные свойства и т. Д. .)

...