When pressing add element on List View when the whole visual element of the list view is full and it needs to expend its size, it throws many errors of
Recursively dispatching event UnityEngine.UIElements.PropertyChangedEvent from another event UnityEngine.UIElements.ChangeEvent`1[System.Single] (depth = 483)
Recursively dispatching event UnityEngine.UIElements.ChangeEvent
1[System.Single] from another event UnityEngine.UIElements.ChangeEvent1[System.Single] (depth = 484)
Recursively dispatching event UnityEngine.UIElements.ChangeEvent
1[System.Single] from another event UnityEngine.UIElements.ChangeEvent1[System.Single] (depth = 491)
Void Dispatch(UnityEngine.UIElements.EventBase, UnityEngine.UIElements.BaseVisualElementPanel, UnityEngine.UIElements.DispatchMode)(:0)
Void SendEvent(UnityEngine.UIElements.EventBase, UnityEngine.UIElements.DispatchMode)(:0)
Void SendEvent(UnityEngine.UIElements.EventBase, UnityEngine.UIElements.DispatchMode)(:0)
Void set_value(Single)(:0)
Void set_value(Single)(:0)
Void set_value(Single)(:0)
Void OnSliderValueChange(UnityEngine.UIElements.ChangeEvent`1[System.Single])(:0)
Void Invoke(UnityEngine.UIElements.EventBase)(:0)
Void Invoke(UnityEngine.UIElements.EventBase, UnityEngine.UIElements.BaseVisualElementPanel, UnityEngine.UIElements.VisualElement)(:0)
Void HandleEvent_BubbleUpCallbacks(UnityEngine.UIElements.EventBase, UnityEngine.UIElements.BaseVisualElementPanel, UnityEngine.UIElements.VisualElement)(:0)
Void HandleEventAcrossPropagationPath(UnityEngine.UIElements.EventBase, UnityEngine.UIElements.BaseVisualElementPanel, UnityEngine.UIElements.VisualElement, Boolean)(:0)
Void PropagateEvent(UnityEngine.UIElements.EventBase, UnityEngine.UIElements.BaseVisualElementPanel, UnityEngine.UIElements.VisualElement, Boolean)(:0)
Void DefaultDispatch(UnityEngine.UIElements.EventBase, UnityEngine.UIElements.BaseVisualElementPanel)(:0)
Void Dispatch(UnityEngine.UIElements.BaseVisualElementPanel)(:0)

And the code of the list is
public void BindSubTasksArray(ListView list)
{
var elementInArray = _task.SubTasks;
list.itemsSource = elementInArray;
list.makeItem = () =>
{
return new SubTask();
};
list.bindItem = (element, e) =>
{
EditorApplication.delayCall += () =>
{
var task = _task;
var baseElement = (SubTask)element;
baseElement.ConnectFields(task.SubTasks[e]);
};
};
list.itemsAdded += (numbers) => _task.AddTaskElement(numbers);
list.itemsRemoved += (numbers) => _task.RemoveTaskElement(numbers);
list.virtualizationMethod = CollectionVirtualizationMethod.DynamicHeight;
list.reorderMode = ListViewReorderMode.Animated;
list.reorderable = true;
list.showAddRemoveFooter = true;
}
public class SubTask : VisualElement
{
public Toggle Toggle;
public TextField TextField;
public const string TOGGLE_CLASS = "sub-task_toggle";
public const string TEXT_FIELD_CLASS = "sub-task_text-field";
public const string VISUAL_CLASS = "sub-task_element";
public SubTask()
{
AddToClassList(VISUAL_CLASS);
Toggle = new Toggle();
Toggle.AddToClassList(TOGGLE_CLASS);
TextField = new TextField();
TextField.AddToClassList(TEXT_FIELD_CLASS);
Add(Toggle);
Add(TextField);
}
public void ConnectFields(BoolenTask subTask)
{
Toggle.value = subTask.Finished;
TextField.value = subTask.Name;
TextField.RegisterValueChangedCallback((evt) => subTask.Name = evt.newValue);
Toggle.RegisterValueChangedCallback((evt) => subTask.Finished = evt.newValue);
}
}