C# WPF Material Design - TreeView Ausgewähltes Item erhalten?

1 Antwort

Die Informationen, die du benötigst, findest du in der Dokumentation. So gibt es diese zwei Properties:

Dein TreeView solltest du allerdings eher an eine ItemsSource hängen.

Ein einfaches Beispiel:

XAML:

<!-- window ... -->
<Window.DataContext>
  <local:ViewModel />
</Window.DataContext>
<Grid>
  <TreeView ItemsSource="{Binding Persons}">
    <TreeView.ItemContainerStyle>
      <Style TargetType="{x:Type TreeViewItem}">
        <Setter Property="IsExpanded" Value="False" />
        <Setter Property="Header" Value="{Binding Name}" />
      </Style>
    </TreeView.ItemContainerStyle>
  </TreeView>
</Grid>
<!-- close window ... -->

ViewModel-Klasse:

public class ViewModel
{
  public ViewModel()
  {
    Persons = new ObservableCollection<Person>
    {
      new Person { Name = "Paul Panther" },
      new Person { Name = "Donald Duck" },
      new Person { Name = "Alfons Zitterbacke" }
    };
  }

  public ObservableCollection<Person> Persons { get; set; }
}

Person-Klasse:

public class Person
{
  public string Name { get; set; }
}

Folgend werden neue Einträge an Persons gehängt:

Persons.Add(new Person { Name = "Alfred J. Kwak" });

Das View aktualisiert sich automatisch.

Wenn sich der Selektionsstatus eines Items verändert, kann man darauf ebenfalls mit einem Binding reagieren (ein Beispiel findest du hier).