A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

dingxp

初级黑马

  • 黑马币:19

  • 帖子:6

  • 精华:0

本帖最后由 dingxp 于 2014-10-16 22:34 编辑

  各位老师,我用wpf做了一个treeview的作业,结果获取不了节点上的文本文件,以下是源码,请帮我指点以下好吗:

C#源码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.IO;

namespace 福尔摩斯全集treeview
{
    /// <summary>
    /// MainWindow.xaml 的交互逻辑
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }

        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            
            string path = "福尔摩斯小说全集";
            TreeViewItem tvi = new TreeViewItem() { Header = path };
            Loaditem(path,tvi);
            TV.Items.Add(tvi);
            
         
        }
        void Loaditem(string path,TreeViewItem tvi)
        {
            string[] strs = Directory.GetDirectories(path);
            for (int i = 0; i < strs.Length; i++)
            {
                string temppath = strs;
                TreeViewItem temp = new TreeViewItem() { Header = System.IO.Path.GetFileName(strs) };
            
                tvi.Items.Add(temp);
                Loaditem(temppath, temp);
            }
            string[] texts =Directory.GetFiles(path);
            for (int i = 0; i < texts.Length; i++)
            {
                TreeViewItem tvi1 = new TreeViewItem();
                tvi1.Tag = texts;
                tvi1.Items.Add(texts);
               
                tvi.Items.Add(System.IO.Path.GetFileName(texts));
                //tvi.Items. = "texts";
            }
        }

        private void TV_selected(object sender, RoutedEventArgs e)

        {
            TreeViewItem tvi = new TreeViewItem();
            tvi = e.OriginalSource as TreeViewItem;
            if (tvi.Tag==null)
            {
                return;
            }
            string taag = (string)tvi.Tag;
            

                 TT.Text = File.ReadAllText(taag);
           
                     
            
        }

      


        

   

    }
}

xaml源码:

<Window x:Class="福尔摩斯全集treeview.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525" Loaded="Window_Loaded">
    <Grid>
        <DockPanel LastChildFill="True">
            <TreeView TreeViewItem.Selected="TV_selected" Name="TV" Width="130" ></TreeView>
            <TextBox Name="TT"></TextBox>
        </DockPanel>
        
    </Grid>
</Window>


6 个回复

倒序浏览
估计大家都在忙吧。。。。。。。。
回复 使用道具 举报
是的,可能都忙
回复 使用道具 举报

谢谢回复,已经解决了,基础知识没掌握好。。。。。。。。。。。。。
回复 使用道具 举报
string[] texts =Directory.GetFiles(path);
            for (int i = 0; i < texts.Length; i++)
            {
                TreeViewItem tvi1 = new TreeViewItem();
                tvi1.Tag = texts[i];
                tvi1.Header= (System.IO.Path.GetFileName(texts[i]));
                //tvi.Tag = (tvi1.Tag.ToString());
                tvi.Items.Add(tvi1);
              
                //tvi.Items. = "texts[i]";
            }
这样改过后就好了。。。。。。。。。
回复 使用道具 举报
那太好了。{:2_31:}
回复 使用道具 举报
是啊,挺好的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马