8,731
社区成员
发帖
与我相关
我的任务
分享
<Window x:Class="WpfTest.Window2"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window2" Height="300" Width="300">
<Grid>
<TreeView Height="200" HorizontalAlignment="Left" Margin="20,12,0,0" Name="dazltree" VerticalAlignment="Top" Width="120" />
<Button Content="Button" Height="23" HorizontalAlignment="Left" Margin="181,30,0,0" Name="button1" VerticalAlignment="Top" Width="75" Click="button1_Click" />
<RichTextBox Height="157" VerticalScrollBarVisibility="Auto" HorizontalAlignment="Left" Margin="156,75,0,0" Name="richTextBox1" VerticalAlignment="Top" Width="110" />
</Grid>
</Window>
using System;
using System.Collections.Generic;
using System.Windows;
using System.Windows.Controls;
namespace WpfTest
{
/// <summary>
/// Window2.xaml 的交互逻辑
/// </summary>
public partial class Window2 : Window
{
public Window2()
{
InitializeComponent();
TreeViewItem tviRoot = new TreeViewItem();
tviRoot.Header = "根目录";
dazltree.Items.Add(tviRoot);
TreeViewItem tviChild1 = new TreeViewItem();
tviChild1.Header = "子目录1";
tviRoot.Items.Add(tviChild1);
TreeViewItem tviChild2 = new TreeViewItem();
tviChild2.Header = "子目录2";
tviRoot.Items.Add(tviChild2);
for (Int32 i = 1; i < 4; i++) {
TreeViewItem tviTemp1 = new TreeViewItem();
tviTemp1.Header = "子目录1." + i.ToString();
tviChild1.Items.Add(tviTemp1);
TreeViewItem tviTemp2 = new TreeViewItem();
tviTemp2.Header = "子目录2." + i.ToString();
tviChild2.Items.Add(tviTemp2);
}
}
private void button1_Click(object sender, RoutedEventArgs e)
{
List<String> result = new List<String>();
foreach (var obj in dazltree.Items) {
TreeViewItem temp = obj as TreeViewItem;
if (temp != null) {
GetTreeViewHeader(temp,null, result);
}
}
foreach (String objStr in result) {
richTextBox1.AppendText("\r" + objStr);
}
}
private void GetTreeViewHeader(TreeViewItem rootItem, TreeViewItem childItem ,List<String> result)
{
if (rootItem != null) {
result.Add(rootItem.Header.ToString());
foreach (var obj in rootItem.Items) {
TreeViewItem temp = obj as TreeViewItem;
if (temp != null) {
result.Add(temp.Header.ToString());
GetTreeViewHeader(null, temp, result);
}
}
} else {
foreach (var obj in childItem.Items) {
TreeViewItem temp = obj as TreeViewItem;
if (temp != null) {
result.Add(temp.Header.ToString());
GetTreeViewHeader(null, temp, result);
}
}
}
}
}
}