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