void SetIsChecked(bool?value, bool updateChildren, bool updateParent) { if (value == _isChecked) { return; } _isChecked = value; if (updateChildren && _isChecked.HasValue) { this.Children.ForEach(c => c.SetIsChecked(_isChecked, true, false)); } if (updateParent && _parent != null) { _parent.VerifyCheckState(); } this.OnPropertyChanged("IsChecked"); }