为 CheckBox 的 Checked 和 Unchecked 事件添加事件处理程序。在 Checked 事件处理程序中,遍历 ListView 中的所有 CheckBox 控件,将它们的 IsChecked 属性设置为 true;在 Unchecked 事件处理程序中,将所有 CheckBox 控件的 IsChecked 属性设置为 false。
在 ListView 的 ItemTemplate 中添加一个 CheckBox 控件,用于表示每一行的选中状态。为 CheckBox 的 IsChecked 属性绑定到 ListView 中的数据源,以实现数据绑定。
在 ListView 的代码中,定义一个 ObservableCollection 类型的属性,用于存储 ListView 中的数据。将这个属性设置为 ListView 的 ItemsSource 属性,以实现数据绑定。
下面是一个示例代码:
XAML 代码:
<ListView Name="MyListView">
<ListView.View>
<GridView>
<GridViewColumn>
<GridViewColumnHeader>
<CheckBox x:Name="SelectAllCheckBox"
Content="全选"
Checked="SelectAllCheckBox_Checked"
Unchecked="SelectAllCheckBox_Unchecked"/>
</GridViewColumnHeader>
<GridViewColumn.CellTemplate>
<DataTemplate>
<CheckBox IsChecked="{Binding IsSelected, Mode=TwoWay}"/>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
<GridViewColumn Header="Name" DisplayMemberBinding="{Binding Name}"/>
<GridViewColumn Header="Age" DisplayMemberBinding="{Binding Age}"/>
</GridView>
</ListView.View>
</ListView>
C# 代码:
public partial class MainWindow : Window
public ObservableCollection<Person> PersonList { get; set; }
public MainWindow()
InitializeComponent();
PersonList = new ObservableCollection<Person>
new Person { Name = "张三", Age = 20 },
new Person { Name = "李四", Age = 25 },
new Person { Name = "王五", Age = 30 }
MyListView.ItemsSource = PersonList;
private void SelectAllCheckBox_Checked(object sender, RoutedEventArgs e)
foreach (Person person in PersonList)
person.IsSelected = true;
private void SelectAllCheckBox_Unchecked(object sender, RoutedEventArgs e)
foreach (Person person in PersonList)
person.IsSelected = false;
public class Person
public string Name { get; set; }
public int Age { get; set; }
public bool IsSelected { get; set; }
在这个示例代码中,Person 类表示每一个人的信息,其中 IsSelected 属性用于表示该人是否被选中。MainWindow 类中的 PersonList 属性是一个 ObservableCollection 类型的集合,用于存储所有人的信息,并绑定到 ListView 的 ItemsSource 属性。ListView 的 ItemTemplate 中的 CheckBox 控件的 IsChecked 属性绑定到 Person 类的 IsSelected 属性,以实现数据绑定。在 ListView 的 GridView 中添加一个 CheckBox 控件,用于表示“全选”功能,并为它的 Checked 和 Unchecked 事件添加事件处理程序,以实现“全选”功能。