user3271748
user3271748

Reputation: 77

TreeView c# filepath

i have problem with viewing the path of 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

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.

Thank you for help

ADD:

After changed to SelectedValuePath, textbox is empty. 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. 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);
    }`

Upvotes: 1

Views: 606

Answers (1)

Anatoliy Nikolaev
Anatoliy Nikolaev

Reputation: 22702

In your case, you must take the Header string of TreeViewItem:

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);
}

Upvotes: 1

Related Questions