WPF关联值与复选框

时间:2010-07-03 18:08:09

标签: c# wpf treeview checkbox

我是WPF的新手,我遇到了将值与对象关联的问题。我有一个带CheckBoxes的TreeView,我想知道如何将一个对象关联到每个复选框。我希望能够选中所有选中的复选框(没问题),并获得与每个复选框关联的对象列表。

例如,假设我有一个名为Fruit的类,它具有属性DisplayName和Price

的TreeView:

  • 芒果
  • ✓Apple

我希望能够返回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;

1 个答案:

答案 0 :(得分:0)

TreeViewItem继承自FrameworkElement,它为此目的提供Tag property。您可以将此属性设置为您选择的任意对象。在这种情况下,您可以将其设置为适当的水果对象。

示例:

chkBox.Tag = appleObj;

另一个选项

作为一个选项,您是否考虑将TreeView的ItemsSource属性绑定到水果对象的集合?您可以将TreeView的DisplayMemember property(继承自ItemsControl)设置为包含特定水果名称的水果类的属性。这样可以节省您对复选框进行硬编码的工作。