WPF实现带有Checkbox选择框的TreeView树控件
代码片段:
Window1.xaml文件
<Window x:Class="CheckBoxTreeView.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:l="clr-namespace:CheckBoxTreeView"
Title="Window1" Height="300" Width="300">
<Window.Resources>
<ResourceDictionary>
<l:Directory2ImageSource x:Key="Directory2ImageSource"/>
</ResourceDictionary>
</Window.Resources>
<Grid>
<TreeView Name="tvDirectories" Grid.Column="0" Margin="0,0,5,0">
<TreeView.ItemTemplate>
<HierarchicalDataTemplate DataType="{x:Type l:DirectoryTree}" ItemsSource="{Binding Directories}">
<StackPanel Orientation="Horizontal">
<CheckBox IsChecked="{Binding Path=IsChecked}" IsTabStop="False" Focusable="False" HorizontalAlignment="Center"/>
<Image Source="{Binding Path=Info.FullName, Converter={StaticResource Directory2ImageSource}}" HorizontalAlignment="Center"/>
<TextBlock Text="{Binding Path=Info.Name}" HorizontalAlignment="Center"/>
</StackPanel>
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</TreeView>
</Grid>
</Window>
Window1.xaml.cs文件
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shap