为 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 事件添加事件处理程序,以实现“全选”功能。

  •