Announcement

Collapse
No announcement yet.

Pfad eines selecteditem meines Treeview ziehen?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Pfad eines selecteditem meines Treeview ziehen?

    Hallo ,

    ich bin noch ein Anfänger mit C# und WPF Anwendungen und komme deshalb gerade nicht weiter. Ich habe mithilfe eines Beispiels einen Filebrowser programmiert, der mir Ordner und Dateien in einem TreeView anzeigt. Jetzt versuche ich vergeblich über das "SelectedItemChanged" - Event (also wenn ich irgend etwas im treeview auswähle) einen DateiPfad zu generieren, um damit weiterzuarbeiten. Ich habe es mit TreeView1.SelectedItem versucht, bekomme da aber höchstens den Header zurück. Bei TreeView1.SelectedValue habe ich das gleiche Problem. Bei "TreeView1.SelectedValuePath" bekomme ich tatsächlich nichts zurück. Ich werde mal versuchen meinen Code zu posten. Eventuell könnt ihr mir ja etwas weiterhelfen, würde mich sehr freuen.

    WPF-CODE :


    <TreeView SelectedItemChanged="AsuwahlTreeview" x:Name="TreeView1" Height="520" Width="500" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="0,0,0,0">
    <TreeView.Resources>
    <Style TargetType="{x:Type TreeViewItem}">
    <Setter Property="HeaderTemplate">
    <Setter.Value>
    <DataTemplate>
    <StackPanel Orientation="Horizontal">
    <TextBlock VerticalAlignment="Center" Text="{Binding}"></TextBlock>
    </StackPanel>
    </DataTemplate>
    </Setter.Value>
    </Setter>
    </Style>
    </TreeView.Resources>
    </TreeView>

    C# Code:

    foreach (string s in Directory.GetDirectories(@"C:\TEST"))
    {
    TreeViewItem Hauptordner = new TreeViewItem();
    Hauptordner.Header = s.Substring(s.LastIndexOf("\") + 1);
    Hauptordner.Tag = s;
    Hauptordner.Items.Add(null);
    Hauptordner.Expanded += new RoutedEventHandler(Ordner_Erweiterung);
    TreeView1.Items.Add(Hauptordner);
    }
    void Ordner_Erweiterung(object sender, RoutedEventArgs e)
    {
    TreeViewItem Hauptordner = (TreeViewItem)sender;
    if (Hauptordner.Items.Count == 1 && Hauptordner.Items[0] == null)
    {
    Hauptordner.Items.Clear();

    foreach (string s in Directory.GetDirectories(Hauptordner.Tag.ToString( )))
    {
    TreeViewItem Unterordner = new TreeViewItem();
    Unterordner.Header = s.Substring(s.LastIndexOf("\") + 1);
    Unterordner.Tag = s;
    Unterordner.Items.Add(null);
    Unterordner.Expanded += new RoutedEventHandler(Ordner_Erweiterung);
    Hauptordner.Items.Add(Unterordner);

    foreach (string s2 in Directory.GetFiles(Unterordner.Tag.ToString()))
    {
    TreeViewItem Datei = new TreeViewItem();
    Datei.Header = s2.Substring(s2.LastIndexOf("\") + 1);
    Datei.Tag = s2;
    if (Unterordner.Items.Count == 1 && Unterordner.Items[0] == null)
    {
    Unterordner.Items.Clear();

    }
    Unterordner.Items.Add(Datei);
    }
    }
    }
    }

  • #2
    Ok gut.. ich habe eine Lösung gefunden. Trotzdem Danke!

    TreeViewItem Path = TreeView1.SelectedItem as TreeViewItem;
    string Pfad = Path.Tag.ToString(); // Mein Pfad ist jetzt in der variablen Pfad

    Comment

    Working...
    X