[英]Silverlight TreeView expand all nodes under top node
I am working with a Silverlight TreeView. 我正在使用Silverlight TreeView。 When the control loads, all the nodes are closed.
当控件加载时,所有节点都关闭。 When I click on one of the nodes I need for all the child nodes under that opened parent node to expand.
当我单击一个节点时,我需要该打开的父节点下的所有子节点展开。 How do I do this?
我该怎么做呢? My experience with TreeView is very limited so example code would really help out a lot.
我对TreeView的经验非常有限,因此示例代码确实可以提供很多帮助。 Thanks!
谢谢!
Attach a handler to each TreeViewItem's Expanded
event. 将处理程序附加到每个TreeViewItem的
Expanded
事件。 Then, traverse the tree of children, expanding each node as you go. 然后,遍历子级树,随行扩展每个节点。
Simple XAML: 简单的XAML:
<sdk:TreeView>
<sdk:TreeViewItem Expanded="TreeViewItem_OnExpanded" Header="One"></sdk:TreeViewItem>
<sdk:TreeViewItem Expanded="TreeViewItem_OnExpanded" Header="Two">
<sdk:TreeViewItem Expanded="TreeViewItem_OnExpanded" Header="Three">
<sdk:TreeViewItem Expanded="TreeViewItem_OnExpanded" Header="Four">
<sdk:TreeViewItem Expanded="TreeViewItem_OnExpanded" Header="Five" />
</sdk:TreeViewItem>
</sdk:TreeViewItem>
</sdk:TreeViewItem>
</sdk:TreeView>
Code behind: 后面的代码:
private void TreeViewItem_OnExpanded(object sender, RoutedEventArgs e)
{
TreeViewItem tvi = sender as TreeViewItem;
Debug.Assert(tvi != null);
if (tvi.HasItems) { ExpandChildren(tvi); }
}
private void ExpandChildren(TreeViewItem tvi)
{
foreach (var item in tvi.Items)
{
if (item is TreeViewItem) { ExpandChildren(item as TreeViewItem); }
}
tvi.IsExpanded = true;
}
I don't know how to set up an event handler in a TreeView.ItemTemplate, however. 但是,我不知道如何在TreeView.ItemTemplate中设置事件处理程序。
Perhaps another reader knows how to do that ... ? 也许另一个读者知道该怎么做...?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.