我是WPF的新手,我遇到了将值与对象关联的问题。我有一个带CheckBoxes的TreeView,我想知道如何将一个对象关联到每个复选框。我希望能够选中所有选中的复选框(没问题),并获得与每个复选框关联的对象列表。
例如,假设我有一个名为Fruit的类,它具有属性DisplayName和Price
的TreeView:
我希望能够返回Apple对象,以便我可以获得与Fruit相关的Price和其他属性。
以下是我向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;
答案 0 :(得分:0)
TreeViewItem继承自FrameworkElement,它为此目的提供Tag property。您可以将此属性设置为您选择的任意对象。在这种情况下,您可以将其设置为适当的水果对象。
示例:
chkBox.Tag = appleObj;
作为一个选项,您是否考虑将TreeView的ItemsSource属性绑定到水果对象的集合?您可以将TreeView的DisplayMemember property(继承自ItemsControl)设置为包含特定水果名称的水果类的属性。这样可以节省您对复选框进行硬编码的工作。