我有以下代码:
<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。
任何帮助将不胜感激。谢谢!
答案 0 :(得分:2)
检查复选框没有将IsChecked绑定到某个东西是没有意义的。将您的ItemsSource更改为包含整数和布尔值的结构集合。选中该复选框后,迭代并将所有bool设置为true。
如果你真的坚持要保留整数列表,那么作为一个完整的黑客你可以使用每个复选框中的Loaded事件将其记录在列表中,然后在选中顶部复选框时检查列表中的所有内容,但是我不推荐这个。