StackOverflowException при включении Toggle

128
24 октября 2019, 21:30

Всем привет! Короче мне надо создать Toggle Group, но свой, потому что в Toggle Group Unity есть недостатки.

Вот это мой основной скрипт Toggle Group.

А это скрипт который есть во всех Toggle-ах в нём хранится ID Toggle-а.

В начале я каждому Toggle-у даю свой ID.

Потом делаю так чтобы при нажатии на Toggle все отключились а он включился.

И получаю такой шедевр.

Я понял что ошибка из-за этой строки, но что с ней не так.

Вот скрипт 1

public int id; TogglesGroupScript togglesGroupScript;

/* ==================================== Start =====================================*/
private void Start()
{
    togglesGroupScript = GameObject.Find("Scene Settings").GetComponent<TogglesGroupScript>();
}
/* ==================================== Update =====================================*/
private void Update()
{
    Toggle toggle = gameObject.GetComponent<Toggle>();
    toggle.onValueChanged.AddListener(delegate
    {
        togglesGroupScript.value = id;
        togglesGroupScript.SelectTool(id);
    });
}

А это скрипт 2

public int value; public Toggle[] Toggles;

/* ==================================== Start =====================================*/
private void Start()
{
    for (int i = 0; i < Toggles.Length; i++)
    {
        Toggles[i].GetComponent<ToggleOfGroupScript>().id = i;
    }
}
/* ==================================== Functions =====================================*/
public void SelectTool(int id)
{
    for (int i = 0; i < Toggles.Length; i++)
    {
        Toggles[i].isOn = false;
    }
    Toggles[id].isOn = true;
}

Ошибка:

StackOverflowException: The requested operation caused a stack overflow.
UnityEngine.MonoBehaviour.StartCoroutine (IEnumerator routine) (at C:/buildslave/unity/build/Runtime/Export/MonoBehaviour.bindings.cs:90)
UnityEngine.UI.CoroutineTween.TweenRunner`1[UnityEngine.UI.CoroutineTween.ColorTween].StartTween (ColorTween info) (at C:/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/UI/Animation/CoroutineTween.cs:232)
UnityEngine.UI.Graphic.CrossFadeColor (Color targetColor, Single duration, Boolean ignoreTimeScale, Boolean useAlpha, Boolean useRGB) (at C:/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/UI/Core/Graphic.cs:609)
UnityEngine.UI.Graphic.CrossFadeAlpha (Single alpha, Single duration, Boolean ignoreTimeScale) (at C:/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/UI/Core/Graphic.cs:621)
UnityEngine.UI.Toggle.PlayEffect (Boolean instant) (at C:/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/UI/Core/Toggle.cs:207)
UnityEngine.UI.Toggle.Set (Boolean value, Boolean sendCallback) (at C:/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/UI/Core/Toggle.cs:186)
UnityEngine.UI.Toggle.Set (Boolean value) (at C:/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/UI/Core/Toggle.cs:163)
UnityEngine.UI.Toggle.set_isOn (Boolean value) (at C:/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/UI/Core/Toggle.cs:157)
TogglesGroupScript.SelectTool (Int32 id) (at Assets/Scripts/New/All/TogglesGroupScript.cs:27)
ToggleOfGroupScript.<Update>m__0 (Boolean ) (at Assets/Scripts/New/All/ToggleOfGroupScript.cs:26)
UnityEngine.Events.InvokableCall`1[System.Boolean].Invoke (Boolean args0) (at C:/buildslave/unity/build/Runtime/Export/UnityEvent.cs:207)
UnityEngine.Events.UnityEvent`1[System.Boolean].Invoke (Boolean arg0) (at C:/buildslave/unity/build/Runtime/Export/UnityEvent_1.cs:58)
UnityEngine.UI.Toggle.Set (Boolean value, Boolean sendCallback) (at C:/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/UI/Core/Toggle.cs:190)
UnityEngine.UI.Toggle.Set (Boolean value) (at C:/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/UI/Core/Toggle.cs:163)
UnityEngine.UI.Toggle.set_isOn (Boolean value) (at C:/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/UI/Core/Toggle.cs:157)
TogglesGroupScript.SelectTool (Int32 id) (at Assets/Scripts/New/All/TogglesGroupScript.cs:29)
ToggleOfGroupScript.<Update>m__0 (Boolean ) (at Assets/Scripts/New/All/ToggleOfGroupScript.cs:26)
UnityEngine.Events.InvokableCall`1[System.Boolean].Invoke (Boolean args0) (at C:/buildslave/unity/build/Runtime/Export/UnityEvent.cs:207)
UnityEngine.Events.UnityEvent`1[System.Boolean].Invoke (Boolean arg0) (at C:/buildslave/unity/build/Runtime/Export/UnityEvent_1.cs:58)
UnityEngine.UI.Toggle.Set (Boolean value, Boolean sendCallback) (at C:/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/UI/Core/Toggle.cs:190)
UnityEngine.UI.Toggle.Set (Boolean value) (at C:/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/UI/Core/Toggle.cs:163)
UnityEngine.UI.Toggle.set_isOn (Boolean value) (at C:/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/UI/Core/Toggle.cs:157)
TogglesGroupScript.SelectTool (Int32 id) (at Assets/Scripts/New/All/TogglesGroupScript.cs:27)
ToggleOfGroupScript.<Update>m__0 (Boolean ) (at Assets/Scripts/New/All/ToggleOfGroupScript.cs:26)
UnityEngine.Events.InvokableCall`1[System.Boolean].Invoke (Boolean args0) (at C:/buildslave/unity/build/Runtime/Export/UnityEvent.cs:207)
UnityEngine.Events.UnityEvent`1[System.Boolean].Invoke (Boolean arg0) (at C:/buildslave/unity/build/Runtime/Export/UnityEvent_1.cs:58)
UnityEngine.UI.Toggle.Set (Boolean value, Boolean sendCallback) (at C:/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/UI/Core/Toggle.cs:190)
UnityEngine.UI.Toggle.Set (Boolean value) (at C:/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/UI/Core/Toggle.cs:163)
UnityEngine.UI.Toggle.set_isOn (Boolean value) (at C:/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/UI/Core/Toggle.cs:157)
TogglesGroupScript.SelectTool (Int32 id) (at Assets/Scripts/New/All/TogglesGroupScript.cs:29)
ToggleOfGroupScript.<Update>m__0 (Boolean ) (at Assets/Scripts/New/All/ToggleOfGroupScript.cs:26)
UnityEngine.Events.InvokableCall`1[System.Boolean].Invoke (Boolean args0) (at C:/buildslave/unity/build/Runtime/Export/UnityEvent.cs:207)
UnityEngine.Events.UnityEvent`1[System.Boolean].Invoke (Boolean arg0) (at C:/buildslave/unity/build/Runtime/Export/UnityEvent_1.cs:58)
UnityEngine.UI.Toggle.Set (Boolean value, Boolean sendCallback) (at C:/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/UI/Core/Toggle.cs:190)
UnityEngine.UI.Toggle.Set (Boolean value) (at C:/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/UI/Core/Toggle.cs:163)
UnityEngine.UI.Toggle.set_isOn (Boolean value) (at C:/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/UI/Core/Toggle.cs:157)
TogglesGroupScript.SelectTool (Int32 id) (at Assets/Scripts/New/All/TogglesGroupScript.cs:27)
ToggleOfGroupScript.<Update>m__0 (Boolean ) (at Assets/Scripts/New/All/ToggleOfGroupScript.cs:26)
UnityEngine.Events.InvokableCall`1[System.Boolean].Invoke (Boolean args0) (at C:/buildslave/unity/build/Runtime/Export/UnityEvent.cs:207)
UnityEngine.Events.UnityEvent`1[System.Boolean].Invoke (Boolean arg0) (at C:/buildslave/unity/build/Runtime/Export/UnityEvent_1.cs:58)
UnityEngine.UI.Toggle.Set (Boolean value, Boolean sendCallback) (at C:/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/UI/Core/Toggle.cs:190)
UnityEngine.UI.Toggle.Set (Boolean value) (at C:/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/UI/Core/Toggle.cs:163)
UnityEngine.UI.Toggle.set_isOn (Boolean value) (at C:/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/UI/Core/Toggle.cs:157)
TogglesGroupScript.SelectTool (Int32 id) (at Assets/Scripts/New/All/TogglesGroupScript.cs:29)
ToggleOfGroupScript.<Update>m__0 (Boolean ) (at Assets/Scripts/New/All/ToggleOfGroupScript.cs:26)
UnityEngine.Events.InvokableCall`1[System.Boolean].Invoke (Boolean args0) (at C:/buildslave/unity/build/Runtime/Export/UnityEvent.cs:207)
UnityEngine.Events.UnityEvent`1[System.Boolean].Invoke (Boolean arg0) (at C:/buildslave/unity/build/Runtime/Export/UnityEvent_1.cs:58)
UnityEngine.UI.Toggle.Set (Boolean value, Boolean sendCallback) (at C:/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/UI/Core/Toggle.cs:190)
UnityEngine.UI.Toggle.Set (Boolean value) (at C:/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/UI/Core/Toggle.cs:163)
UnityEngine.UI.Toggle.set_isOn (Boolean value) (at C:/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/UI/Core/Toggle.cs:157)
TogglesGroupScript.SelectTool (Int32 id) (at Assets/Scripts/New/All/TogglesGroupScript.cs:27)
ToggleOfGroupScript.<Update>m__0 (Boolean ) (at Assets/Scripts/New/All/ToggleOfGroupScript.cs:26)
UnityEngine.Events.InvokableCall`1[System.Boolean].Invoke (Boolean args0) (at C:/buildslave/unity/build/Runtime/Export/UnityEvent.cs:207)
UnityEngine.Events.UnityEvent`1[System.Boolean].Invoke (Boolean arg0) (at C:/buildslave/unity/build/Runtime/Export/UnityEvent_1.cs:58)
UnityEngine.UI.Toggle.Set (Boolean value, Boolean sendCallback) (at C:/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/UI/Core/Toggle.cs:190)
UnityEngine.UI.Toggle.Set (Boolean value) (at C:/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/UI/Core/Toggle.cs:163)
UnityEngine.UI.Toggle.set_isOn (Boolean value) (at C:/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/UI/Core/Toggle.cs:157)
TogglesGroupScript.SelectTool (Int32 id) (at Assets/Scripts/New/All/TogglesGroupScript.cs:29)
ToggleOfGroupScript.<Update>m__0 (Boolean ) (at Assets/Scripts/New/All/ToggleOfGroupScript.cs:26)
UnityEngine.Events.InvokableCall`1[System.Boolean].Invoke (Boolean args0) (at C:/buildslave/unity/build/Runtime/Export/UnityEvent.cs:207)
UnityEngine.Events.UnityEvent`1[System.Boolean].Invoke (Boolean arg0) (at C:/buildslave/unity/build/Runtime/Export/UnityEvent_1.cs:58)
UnityEngine.UI.Toggle.Set (Boolean value, Boolean sendCallback) (at C:/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/UI/Core/Toggle.cs:190)
UnityEngine.UI.Toggle.Set (Boolean value) (at C:/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/UI/Core/Toggle.cs:163)
UnityEngine.UI.Toggle.set_isOn (Boolean value) (at C:/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/UI/Core/Toggle.cs:157)
TogglesGroupScript.SelectTool (Int32 id) (at Assets/Scripts/New/All/TogglesGroupScript.cs:27)
ToggleOfGroupScript.<Update>m__0 (Boolean ) (at Assets/Scripts/New/All/ToggleOfGroupScript.cs:26)
UnityEngine.Events.InvokableCall`1[System.Boolean].Invoke (Boolean args0) (at C:/buildslave/unity/build/Runtime/Export/UnityEvent.cs:207)
UnityEngine.Events.UnityEvent`1[System.Boolean].Invoke (Boolean arg0) (at C:/buildslave/unity/build/Runtime/Export/UnityEvent_1.cs:58)
UnityEngine.UI.Toggle.Set (Boolean value, Boolean sendCallback) (at C:/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/UI/Core/Toggle.cs:190)
UnityEngine.UI.Toggle.Set (Boolean value) (at C:/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/UI/Core/Toggle.cs:163)
UnityEngine.UI.Toggle.set_isOn (Boolean value) (at C:/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/UI/Core/Toggle.cs:157)
TogglesGroupScript.SelectTool (Int32 id) (at Assets/Scripts/New/All/TogglesGroupScript.cs:29)
ToggleOfGroupScript.<Update>m__0 (Boolean ) (at Assets/Scripts/New/All/ToggleOfGroupScript.cs:26)
UnityEngine.Events.InvokableCall`1[System.Boolean].Invoke (Boolean args0) (at C:/buildslave/unity/build/Runtime/Export/UnityEvent.cs:207)
UnityEngine.Events.UnityEvent`1[System.Boolean].Invoke (Boolean arg0) (at C:/buildslave/unity/build/Runtime/Export/UnityEvent_1.cs:58)
UnityEngine.UI.Toggle.Set (Boolean value, Boolean sendCallback) (at C:/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/UI/Core/Toggle.cs:190)
UnityEngine.UI.Toggle.Set (Boolean value) (at C:/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/UI/Core/Toggle.cs:163)
UnityEngine.UI.Toggle.set_isOn (Boolean value) (at C:/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/UI/Core/Toggle.cs:157)
TogglesGroupScript.SelectTool (Int32 id) (at Assets/Scripts/New/All/TogglesGroupScript.cs:27)
ToggleOfGroupScript.<Update>m__0 (Boolean ) (at Assets/Scripts/New/All/ToggleOfGroupScript.cs:26)
UnityEngine.Events.InvokableCall`1[System.Boolean].Invoke (Boolean args0) (at C:/buildslave/unity/build/Runtime/Export/UnityEvent.cs:207)
UnityEngine.Events.UnityEvent`1[System.Boolean].Invoke (Boolean arg0) (at C:/buildslave/unity/build/Runtime/Export/UnityEvent_1.cs:58)
UnityEngine.UI.Toggle.Set (Boolean value, Boolean sendCallback) (at C:/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/UI/Core/Toggle.cs:190)
UnityEngine.UI.Toggle.Set (Boolean value) (at C:/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/UI/Core/Toggle.cs:163)
UnityEngine.UI.Toggle.set_isOn (Boolean value) (at C:/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/UI/Core/Toggle.cs:157)
TogglesGroupScript.SelectTool (Int32 id) (at Assets/Scripts/New/All/TogglesGroupScript.cs:29)
ToggleOfGroupScript.<Update>m__0 (Boolean ) (at Assets/Scripts/New/All/ToggleOfGroupScript.cs:26)
UnityEngine.Events.InvokableCall`1[System.Boolean].Invoke (Boolean args0) (at C:/buildslave/unity/build/Runtime/Export/UnityEvent.cs:207)
UnityEngine.Events.UnityEvent`1[System.Boolean].Invoke (Boolean arg0) (at C:/buildslave/unity/build/Runtime/Export/UnityEvent_1.cs:58)
UnityEngine.UI.Toggle.Set (Boolean value, Boolean sendCallback) (at C:/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/UI/Core/Toggle.cs:190)
UnityEngine.UI.Toggle.Set (Boolean value) (at C:/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/UI/Core/Toggle.cs:163)
UnityEngine.UI.Toggle.set_isOn (Boolean value) (at C:/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/UI/Core/Toggle.cs:157)
TogglesGroupScript.SelectTool (Int32 id) (at Assets/Scripts/New/All/TogglesGroupScript.cs:27)
ToggleOfGroupScript.<Update>m__0 (Boolean ) (at Assets/Scripts/New/All/ToggleOfGroupScript.cs:26)
UnityEngine.Events.InvokableCall`1[System.Boolean].Invoke (Boolean args0) (at C:/buildslave/unity/build/Runtime/Export/UnityEvent.cs:207)
UnityEngine.Events.UnityEvent`1[System.Boolean].Invoke (Boolean arg0) (at C:/buildslave/unity/build/Runtime/Export/UnityEvent_1.cs:58)
UnityEngine.UI.Toggle.Set (Boolean value, Boolean sendCallback) (at C:/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/UI/Core/Toggle.cs:190)
UnityEngine.UI.Toggle.Set (Boolean value) (at C:/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/UI/Core/Toggle.cs:163)
UnityEngine.UI.Toggle.set_isOn (Boolean value) (at C:/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/UI/Core/Toggle.cs:157)
TogglesGroupScript.SelectTool (Int32 id) (at Assets/Scripts/New/All/TogglesGroupScript.cs:29)
ToggleOfGroupScript.<Update>m__0 (Boolean ) (at Assets/Scripts/New/All/ToggleOfGroupScript.cs:26)
UnityEngine.Events.InvokableCall`1[System.Boolean].Invoke (Boolean args0) (at C:/buildslave/unity/build/Runtime/Export/UnityEvent.cs:207)
UnityEngine.Events.UnityEvent`1[System.Boolean].Invoke (Boolean arg0) (at C:/buildslave/unity/build/Runtime/Export/UnityEvent_1.cs:58)
UnityEngine.UI.Toggle.Set (Boolean value, Boolean sendCallback) (at C:/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/UI/Core/Toggle.cs:190)
UnityEngine.UI.Toggle.Set (Boolean value) (at C:/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/UI/Core/Toggle.cs:163)
UnityEngine.UI.Toggle.set_isOn (Boolean value) (at C:/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/UI/Core/Toggle.cs:157)
TogglesGroupScript.SelectTool (Int32 id) (at Assets/Scripts/New/All/TogglesGroupScript.cs:27)
ToggleOfGroupScript.<Update>m__0 (Boolean ) (at Assets/Scripts/New/All/ToggleOfGroupScript.cs:26)
UnityEngine.Events.InvokableCall`1[System.Boolean].Invoke (Boolean args0) (at C:/buildslave/unity/build/Runtime/Export/UnityEvent.cs:207)
UnityEngine.Events.UnityEvent`1[System.Boolean].Invoke (Boolean arg0) (at C:/buildslave/unity/build/Runtime/Export/UnityEvent_1.cs:58)
UnityEngine.UI.Toggle.Set (Boolean value, Boolean sendCallback) (at C:/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/UI/Core/Toggle.cs:190)
UnityEngine.UI.Toggle.Set (Boolean value) (at C:/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/UI/Core/Toggle.cs:163)
UnityEngine.UI.Toggle.set_isOn (Boolean value) (at C:/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/UI/Core/Toggle.cs:157)
TogglesGroupScript.SelectTool (Int32 id) (at Assets/Scripts/New/All/TogglesGroupScript.cs:29)
ToggleOfGroupScript.<Update>m__0 (Boolean ) (at Assets/Scripts/New/All/ToggleOfGroupScript.cs:26)
UnityEngine.Events.InvokableCall`1[System.Boolean].Invoke (Boolean args0) (at C:/buildslave/unity/build/Runtime/Export/UnityEvent.cs:207)
UnityEngine.Events.UnityEvent`1[System.Boolean].Invoke (Boolean arg0) (at C:/buildslave/unity/build/Runtime/Export/UnityEvent_1.cs:58)
UnityEngine.UI.Toggle.Set (Boolean value, Boolean sendCallback) (at C:/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/UI/Core/Toggle.cs:190)
UnityEngine.UI.Toggle.Set (Boolean value) (at C:/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/UI/Core/Toggle.cs:163)
UnityEngine.UI.Toggle.set_isOn (Boolean value) (at C:/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/UI/Core/Toggle.cs:157)
TogglesGroupScript.SelectTool (Int32 id) (at Assets/Scripts/New/All/TogglesGroupScript.cs:27)
ToggleOfGroupScript.<Update>m__0 (Boolean ) (at Assets/Scripts/New/All/ToggleOfGroupScript.cs:26)
UnityEngine.Events.InvokableCall`1[System.Boolean].Invoke (Boolean args0) (at C:/buildslave/unity/build/Runtime/Export/UnityEvent.cs:207)
UnityEngine.Events.UnityEvent`1[System.Boolean].Invoke (Boolean arg0) (at C:/buildslave/unity/build/Runtime/Export/UnityEvent_1.cs:58)
UnityEngine.UI.Toggle.Set (Boolean value, Boolean sendCallback) (at C:/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/UI/Core/Toggle.cs:190)
UnityEngine.UI.Toggle.Set (Boolean value) (at C:/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/UI/Core/Toggle.cs<message truncated>

Помогите что мне делать? Нужно любое решение.

Answer 1

Возможно я не правильно понял код, но какой вопрос, такой...

/* ==================================== Start =====================================*/
private void Start()
{
    togglesGroupScript = GameObject.Find("Scene Settings").GetComponent<TogglesGroupScript>();
     Toggle toggle = gameObject.GetComponent<Toggle>();
     togglesGroupScript.value = id;
}
/* ==================================== Update =====================================*/
private void Update()
{
   // Не нужно каждый кадр добавлять слушатель. Потому что это очень скоро сломает приложение
}

Вероятная причина: бесконечная рекурсия

Toggle toggle = gameObject.GetComponent<Toggle>();
toggle.onValueChanged.AddListener(delegate //<-- значение изменилось принять событие.
{
    togglesGroupScript.value = id;
    togglesGroupScript.SelectTool(id);// <-- значение изменилось, кинуть событие 
});

Что делать: не используй событие, а зачем оно здесь вообще нужно... И никогда не меняй значение в слушателе который слушает изменение этого значения!

READ ALSO
C# работа с указателями как с цифрами

C# работа с указателями как с цифрами

Есть так называемый XOR списокДля его реализации надо сделать XOR указателей

154
Обращение к объектам других форм Xamarin

Обращение к объектам других форм Xamarin

В проекте на Xamarin есть MainPagexaml внутри которой лежит Grid

110
Не могу нарисовать линию в Visual Studio (в форме)

Не могу нарисовать линию в Visual Studio (в форме)

На форме я создал pictureBox и на нем хочу нарисовать линиями своё ФИОРазмеры pictureBox 776; 426 (залит черным цветом)

216