private void UpdateDescendantsCount(Func <int, int> apply) { IModelNode item = this; while (item is not null) { item.SetDescendantsCount(apply(item.DescendantsCount)); item = item.Parent as IModelNode; } }