CheckBox状态多选

前:

 1   <StackPanel Margin="10">
 2             <Label FontWeight="Bold">Application Options</Label>
 3             <StackPanel Margin="10,5">
 4                 <CheckBox IsThreeState="True" Name="cbAllFeatures" Checked="cbAllFeatures_CheckedChanged" Unchecked="cbAllFeatures_CheckedChanged">Enable all</CheckBox>
 5                 <StackPanel Margin="20,5">
 6                     <CheckBox Name="cbFeatureAbc" Checked="cbFeature_CheckedChanged" Unchecked="cbFeature_CheckedChanged">Enable feature ABC</CheckBox>
 7                     <CheckBox Name="cbFeatureXyz" IsChecked="True" Checked="cbFeature_CheckedChanged" Unchecked="cbFeature_CheckedChanged">Enable feature XYZ</CheckBox>
 8                     <CheckBox Name="cbFeatureWww" Checked="cbFeature_CheckedChanged" Unchecked="cbFeature_CheckedChanged">Enable feature WWW</CheckBox>
 9                 </StackPanel>
10             </StackPanel>
11         </StackPanel>
 1         private void cbAllFeatures_CheckedChanged(object sender, RoutedEventArgs e)
 2         {
 3             bool newVal = (cbAllFeatures.IsChecked == true);
 4             cbFeatureAbc.IsChecked = newVal;
 5             cbFeatureXyz.IsChecked = newVal;
 6             cbFeatureWww.IsChecked = newVal;
 7         }
 8 
 9         private void cbFeature_CheckedChanged(object sender, RoutedEventArgs e)
10         {
11             cbAllFeatures.IsChecked = null;
12             if ((cbFeatureAbc.IsChecked == true) && (cbFeatureXyz.IsChecked == true) && (cbFeatureWww.IsChecked == true))
13                 cbAllFeatures.IsChecked = true;
14             if ((cbFeatureAbc.IsChecked == false) && (cbFeatureXyz.IsChecked == false) && (cbFeatureWww.IsChecked == false))
15                 cbAllFeatures.IsChecked = false;
16         }
原文地址:https://www.cnblogs.com/ants_double/p/5366428.html