简体   繁体   English

TreeView C#文件路径

[英]TreeView c# filepath

i have problem with viewing the path of SelectedTreeView. 我在查看SelectedTreeView的路径时遇到问题。

private void btn3_Click(object sender, RoutedEventArgs e)
    {
        String TreeViewName = treeView1.SelectedItem.ToString().Replace("Item", String.Empty);
        MessageBox.Show(TreeViewName);
    }

Results is : System.Windows.Controls.TreeView Header: FILENAME s.Count:1 结果是:System.Windows.Controls.TreeView标题: FILENAME s.Count:1

I need a path of file, because i have TreeView as filebrowser as and, if i want run the file from treeview, it doesn't work, because it's write that result. 我需要一个文件路径,因为我将TreeView用作文件浏览器,并且,如果我想从treeview中运行文件,它将无法正常工作,因为它会写入结果。

Thank you for help 谢谢你的帮助

ADD: 加:

After changed to SelectedValuePath, textbox is empty. 更改为SelectedValuePath后,文本框为空。 Do you have any ideas to do it otherwise? 您有其他想法吗? I need run the file from TreeView, after I need solve how to view pictures from treeview in grid or canvas. 解决解决方案后,我需要从TreeView运行文件。 My code is 我的代码是

   private void button2_Click(object sender, EventArgs e)
    {
        System.Windows.Forms.FolderBrowserDialog dlg = new System.Windows.Forms.FolderBrowserDialog();

        dlg.Description = "Vyberte složku, kterou přidat";

        if (dlg.ShowDialog() == System.Windows.Forms.DialogResult.OK)
        {
            txtbox1.Text = dlg.SelectedPath;
            ListDirectory(treeView1, dlg.SelectedPath);
        }

    }

     private void ListDirectory(TreeView treeView, string path)
    {
        treeView.Items.Clear();
        var rootDirectoryInfo = new DirectoryInfo(path);
        treeView.Items.Add(CreateDirectoryNode(rootDirectoryInfo));
    }

    private static TreeViewItem CreateDirectoryNode(DirectoryInfo directoryInfo)
    {
        var directoryNode = new TreeViewItem { Header = directoryInfo.Name };
        foreach (var directory in directoryInfo.GetDirectories())
            directoryNode.Items.Add(CreateDirectoryNode(directory));

        foreach (var file in directoryInfo.GetFiles())
            directoryNode.Items.Add(new TreeViewItem { Header = file.Name });

        return directoryNode;

    }

    private void btn3_Click(object sender, RoutedEventArgs e)
    {
        String TreeViewName = treeView1.SelectedValuePath.ToString().Replace("Item", String.Empty);
        txtbox2.Text = TreeViewName;
        System.Diagnostics.Process.Start(TreeViewName);
    }`

In your case, you must take the Header string of TreeViewItem : 对于您的情况,您必须采用TreeViewItemHeader字符串:

private void Button_Click(object sender, RoutedEventArgs e)
{
    TreeViewItem SelectedTreeViewItem = SampleTreeView.SelectedItem as TreeViewItem;
    string FileName = "";

    if (SelectedTreeViewItem != null)
    {
        FileName = SelectedTreeViewItem.Header.ToString(); // Here
    }

    MessageBox.Show(FileName);
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM