Introduction
In this WPF article, I will show you, single checkbox enable all other remaining checkboxes; if it is unchecked then remaining them also unchecked. To do this task, first of add single checkbox for all other checkboxes in the stack panel. Now, add other child checkboxes in nested stack panel. look at, simple xaml code view.
<Window x:Class="WpfApplication8.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid>
<StackPanel Margin="10">
<Label FontWeight="Bold">Technical Skills</Label>
<StackPanel Margin="20,10">
<CheckBox IsThreeState="True" Name="AllSelect" Checked="AllSelect_Checked" Unchecked="AllSelect_Checked">Enable All</CheckBox>
<StackPanel Margin="20,10">
<CheckBox Name="singlecheckjava" Checked="singlecheckjava_Checked" Unchecked="singlecheckjava_Checked">Java</CheckBox>
<CheckBox Name="singlecheckcpp" Checked="singlecheckjava_Checked" Unchecked="singlecheckjava_Checked">C++</CheckBox>
<CheckBox Name="singlecheckphp" Checked="singlecheckjava_Checked" Unchecked="singlecheckjava_Checked">PHP</CheckBox>
</StackPanel>
</StackPanel>
</StackPanel>
</Grid>
</Window>
Here, we have checked and unchecked events. Both are calling same function in "Allselect" checkbox. In the child checkboxes also we have checked and unchecked event , they are calling same method. So in this program we have two method that is "AllSelect_Checked" and "singlecheckjava_Checked".
Code Behind Code
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace WpfApplication8
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void AllSelect_Checked(object sender, RoutedEventArgs e)
{
bool allcheckbox = (AllSelect.IsChecked == true);
singlecheckjava.IsChecked = allcheckbox;
singlecheckcpp.IsChecked = allcheckbox;
singlecheckphp.IsChecked = allcheckbox;
}
private void singlecheckjava_Checked(object sender, RoutedEventArgs e)
{
AllSelect.IsChecked = null;
if ((singlecheckjava.IsChecked == true) && (singlecheckcpp.IsChecked == true) && (singlecheckphp.IsChecked == true))
AllSelect.IsChecked = true;
if ((singlecheckjava.IsChecked == false) && (singlecheckcpp.IsChecked == false) && (singlecheckphp.IsChecked == false))
AllSelect.IsChecked = false;
}
}
}