Для переключения логического флага OnValueChanged не нужно.
А вы сейчас с его помощью создаете поток одинаковых событий (нажали на флажок - изменилась переменная - сработало событие OnValueChanged - в обработчике инвертировали переменную - поэтому опять сработало событие и далее бесконечный цикл), который приводит к переполнению стека.





Ответить с цитированием