【发布时间】:2017-09-11 18:35:24
【问题描述】:
我有一个代码,可以在 TreeView 中显示文件和文件夹名称,并从每个元素中放置一个复选框。我不知道该怎么做是如何知道 TreeView 中使用复选框选中的元素。
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>
程序:
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;
}
【问题讨论】:
-
虽然可以手动遍历
TreeView中的项目,但我建议您将代码更改为 MVVM 方法。然后,您可以简单地遍历您的视图模型项,而无需担心视图的属性。
标签: c# wpf xaml checkbox treeview