【发布时间】:2011-10-31 05:20:03
【问题描述】:
我有一个 3 级 TreeView,它使用多重绑定为 A 类的每个实例生成 2 TreeViewItems 作为 B 类列表。并且每个 List 都包含 Items 让我们说 C 类。
当 Lists(Class B) 折叠时,我可以在 UI 中为每个 List 添加 Class C 的项目。 我什至可以在整个 TreeViewItem(Class A) 折叠时为每个 List(Class B) 添加 Class C。
我的问题是我需要能够访问所有 TreeViewItem,即使它们已折叠。(例如选择它们)。
我尝试这样做,但遇到了以下问题:
1- 所有不可见的 TreeViewItems(B 类和 C 类)尚未创建为 TreeViewItems。(我怎样才能使它们成为?)
2- 当您第一次扩展 B 类 TreeViewIiem 时,您可以将其所有项目(C 类)视为 TreeViewItems。(显然是微不足道的)
3- 折叠 after 在 特定 类 TreeViewItem 中展开任何 B 类(只有 2 个)将导致能够将 C 类实例添加为 TreeViewItems 即使整个 TreeViewItem(A 类)都被折叠了。(只要你留在这个 A 类 TreeViewItem 中)
4- 如果您更改选定的 A 类(即,如果您单击另一个具有与所选 A 类不同的祖先的 TreeViewItem)先前选择的 A 类的所有不可见 TreeViewItems 都将丢失。你可以在新选择的A类中从第1步重新开始。
那么我怎样才能在任何时候选择任何 C 类或 B 类的 TreeViewItem?
谢谢
【问题讨论】:
标签: wpf treeview treeviewitem multibinding