#355 – Implementing Three-State CheckBox Dependent Behavior
August 2, 2011 Leave a comment
You can use a three-state CheckBox to reflect the state of a set of other CheckBox controls.
Here’s some sample code that implements this behavior. (See the previous post for the XAML).
public partial class MainWindow : Window, INotifyPropertyChanged { public event PropertyChangedEventHandler PropertyChanged; private bool doEat; public bool DoEat { get { return doEat; } set { doEat = value; OnPropertyChanged("DoEat"); OnPropertyChanged("DoEverything"); } } // Add same code for DoPray and DoLove properties here // Nullable bool - can be true, false or null public bool? DoEverything { get { if (DoEat && DoPray && DoLove) return true; else if (!DoEat && !DoPray && !DoLove) return false; else return null; } set { if (value == true) DoEat = DoPray = DoLove = true; else DoEat = DoPray = DoLove = false; } } public MainWindow() { this.InitializeComponent(); this.DataContext = this; } private void OnPropertyChanged(string prop) { if (PropertyChanged != null) PropertyChanged(this, new PropertyChangedEventArgs(prop)); } }