在wpf中查找gridview中的复选框

本文关键字:复选框 gridview 查找 wpf | 更新日期: 2023-09-27 18:03:10

我有以下代码:

<ListView Name="lvwYears"
          Margin="0,32,191,29"
          ItemsSource="{Binding Path=YearCollection}">
    <ListView.View>
        <GridView>
            <GridViewColumn>
                <GridViewColumnHeader>
                    <CheckBox Click="CheckBox_Checked"
                              HorizontalAlignment="Left"
                              Content="Year"
                              Padding="50,0,0,0"
                              Margin="20,0,0,0"></CheckBox>
                </GridViewColumnHeader>
                <GridViewColumn.CellTemplate>
                    <DataTemplate>
                        <CheckBox Click="CheckBoxIndividual_Click"
                                  Name="cbxYears"
                                  VerticalAlignment="Center"
                                  Content="{Binding}"
                                  HorizontalAlignment="Left"
                                  Padding="50,0,0,0"
                                  Margin="20,0,0,0" />
                    </DataTemplate>
                </GridViewColumn.CellTemplate>
            </GridViewColumn>
        </GridView>
    </ListView.View>

我想遍历复选框,并在GridViewcolumnHeader中的CheckBox被选中时检查它们。我尝试过使用VisualTree并且失败了,我得到的错误是元素必须是Visual或Visual3D。

任何帮助都将非常感激。谢谢!

在wpf中查找gridview中的复选框

如果不将复选框的IsChecked绑定到某个东西上,那么选中复选框是没有意义的。将ItemsSource更改为带有整型和bool型的结构体集合。当复选框被选中时,遍历并将所有bool设置为true。

如果你真的坚持要保留你的整数列表,那么作为一个总的hack,你可以在每个复选框中使用Loaded事件将其记录在一个列表中,然后在顶部复选框被选中时检查列表中的所有内容,但我不建议这样做。