WPF ассоциировать значение с флажком - PullRequest
1 голос
/ 03 июля 2010

Я новичок в WPF, и у меня возникают проблемы с привязкой значения к объекту.У меня есть TreeView с CheckBoxes, и мне интересно, как я могу связать объект с каждым флажком.Я хочу иметь возможность выбрать все отмеченные флажки (без проблем) и получить список объектов, которые связаны с каждым отмеченным флажком.

Например, допустим, у меня есть класс с именем Fruit, который имеет свойства DisplayName и Price

TreeView:

  • Манго
  • ✓ Apple
  • Оранжевый

Я хочу иметь возможность вернуть объект Apple, чтобы я мог получить цену и другие свойства, связанные с фруктом.

Вот кодПример для меня, добавив флажки в TreeView

TreeViewItem treeViewItem = new TreeViewItem();

CheckBox chkBox = new CheckBox();
chkBox.IsChecked = false;
chkBox.Content = "Value";
chkBox.IsThreeState = false;
chkBox.Click += chkBox_Click;

treeViewItem.Header = chkBox;

1 Ответ

0 голосов
/ 03 июля 2010

TreeViewItem наследуется от FrameworkElement, которая предоставляет свойство Tag для этой цели. Вы можете установить это свойство для произвольного объекта по вашему выбору. В этом случае вы должны установить для него соответствующий фруктовый объект.

Пример:

chkBox.Tag = appleObj;

Другой вариант

Как вариант, рассматривали ли вы возможность привязки свойства ItemsSource TreeView к коллекции ваших фруктовых объектов? Вы должны установить свойство DisplayMemember TreeView (которое наследуется от ItemsControl) для свойства вашего класса фруктов, которое содержит имя конкретного фрукта. Это избавит вас от необходимости жестко кодировать свои флажки.

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