0
我正在使用Silverlight TreeView。當控制加載時,所有節點都關閉。當我點擊我需要的節點之一全部子節點在那個打開的父節點下展開。我該怎麼做呢?我使用TreeView的經驗非常有限,所以示例代碼真的可以幫助很多。謝謝!Silverlight TreeView展開頂級節點下的所有節點
我正在使用Silverlight TreeView。當控制加載時,所有節點都關閉。當我點擊我需要的節點之一全部子節點在那個打開的父節點下展開。我該怎麼做呢?我使用TreeView的經驗非常有限,所以示例代碼真的可以幫助很多。謝謝!Silverlight TreeView展開頂級節點下的所有節點
將一個處理程序附加到每個TreeViewItem的事件Expanded
事件中。然後遍歷子樹,隨時擴展每個節點。
簡單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>
後面的代碼:
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;
}
我不知道如何建立一個TreeView.ItemTemplate事件處理程序,但是。
也許另一位讀者知道該怎麼做......?