J'ai un code qui affiche les noms de fichiers et de dossiers dans un TreeView et met une case à cocher de chaque élément. Qu'est-ce que je ne sais pas comment faire est de savoir comment les éléments dans le TreeView qui sont sélectionnés avec les cases à cocher.TreeView avec CheckBoxes dynamiquement WPF. Comment connaître le nom des éléments sélectionnés
XAML:
<TreeView Name="treeView" Grid.Row="10" Grid.ColumnSpan="3">
<TreeView.Resources>
<Style TargetType="{x:Type TreeViewItem}">
<Setter Property="HeaderTemplate">
<Setter.Value>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<CheckBox Focusable="False" IsChecked="False" VerticalAlignment="Center"/>
<TextBlock Text="{Binding}" Margin="5,0" />
</StackPanel>
</DataTemplate>
</Setter.Value>
</Setter>
</Style>
</TreeView.Resources>
</TreeView>
Programme:
DirectoryInfo di = new DirectoryInfo(folder);
treeView.Items.Add(getTree(di));
public TreeViewItem getTree(DirectoryInfo di)
{
TreeViewItem item = new TreeViewItem();
item.Header = di.Name;
item.FontWeight = FontWeights.Normal;
foreach (DirectoryInfo s in di.GetDirectories())
{
item.Items.Add(getTree(s));
}
foreach (FileInfo fi in di.GetFiles())
{
item.Items.Add(fi.Name);
}
return item;
}
S'il est possible de parcourir manuellement les éléments dans le TreeView, je vous suggère de changer votre code pour l'approche MVVM. Ensuite, vous pouvez facilement parcourir vos éléments de modèle de vue sans avoir à vous soucier des propriétés de la vue. – dymanoid