我遇到的问题与 DataGrid(WPF)中的复选框有关。 为更好地理解问题,我已附上了截图。
问题:即使其中一个子项未选中,数据头列复选框仍然被选中。 我希望解决方案可以修复此问题,以便当用户明确取消选中其中一个子项时,“全部”(列标题)应隐含取消选中。
请帮帮忙... 谢谢 请查看链接。 我希望解决方案能像这样工作。http://www.codeproject.com/Articles/42437/Toggling-the-States-of-all-CheckBoxes-Inside-a-Dat#
<dg:DataGrid.Columns>
<dg:DataGridCheckBoxColumn Binding="{Binding Check}" IsThreeState="True" Width="50">
<dg:DataGridCheckBoxColumn.HeaderTemplate>
<DataTemplate x:Name="dtAllChkBx">
<CheckBox Name="cbxAll" Content="{x:Static properties:Resources.lblAll}"
Checked="CheckBox_Checked" Unchecked="CheckBox_Unchecked" />
</DataTemplate>
</dg:DataGridCheckBoxColumn.HeaderTemplate>
</dg:DataGridCheckBoxColumn>
.
private void CheckBox_Unchecked(object sender, RoutedEventArgs e)
{
unchck_all_prd();
dgEnggAcc.Items.Refresh();
}
private void unchck_all_prd()
{
for (int i = 0; i < engg_list.Count; i++)
{
engg_list[i].Check = false;
}
}
private void chck_all_prd()
{
for (int i = 0; i < engg_list.Count; i++)
{
engg_list[i].Check = true;
}
}
public class EnggLst : ObservableCollection<EnggLst>
{
public bool Check { get; set; }
}
ckbox.IsChecked == true
明确检查其值,或者用ckbox.IsChecked ?? false
进行合并。 - MissingL_tter