public void BindStyleField(BuilderStyleRow styleRow, FoldoutNumberField foldoutElement)
        {
            var intFields = foldoutElement.Query <IntegerField>().ToList();

            foreach (var field in intFields)
            {
                field.SetProperty(BuilderConstants.FoldoutFieldPropertyName, foldoutElement);
                field.RegisterValueChangedCallback((evt) =>
                {
                    var row = field.GetProperty(BuilderConstants.InspectorLinkedStyleRowVEPropertyName) as BuilderStyleRow;
                    if (row != null && !string.IsNullOrEmpty(row.bindingPath))
                    {
                        foldoutElement.UpdateFromChildField(row.bindingPath, field.value.ToString());
                    }

                    foldoutElement.header.AddToClassList(BuilderConstants.InspectorLocalStyleOverrideClassName);
                });

                BuilderStyleRow.ReAssignTooltipToChild(field);
            }
            foldoutElement.header.SetProperty(BuilderConstants.FoldoutFieldPropertyName, foldoutElement);
            foldoutElement.headerInputField.RegisterValueChangedCallback(FoldoutNumberFieldOnValueChange);

            foldoutElement.headerInputField.AddManipulator(
                new ContextualMenuManipulator((e) =>
            {
                e.target = foldoutElement.header;
                BuildStyleFieldContextualMenu(e);
            }));

            foldoutElement.header.AddManipulator(
                new ContextualMenuManipulator(BuildStyleFieldContextualMenu));
        }
        void RefreshStyleFoldoutNumberField(FoldoutNumberField foldoutElement)
        {
            var isDirty = false;

            foreach (var path in foldoutElement.bindingPathArray)
            {
                var cSharpStyleName = ConvertUssStyleNameToCSharpStyleName(path);
                var styleProperty   = GetStyleProperty(currentRule, cSharpStyleName);

                var field = FindStylePropertyInfo(path);
                if (field == null)
                {
                    continue;
                }

                var val = field.GetValue(currentVisualElement.computedStyle, null);
                if (val is StyleFloat)
                {
                    var style = (StyleFloat)val;
                    var value = style.value;

                    if (styleProperty != null)
                    {
                        isDirty = true;
                        value   = styleSheet.GetFloat(styleProperty.values[0]);
                    }

                    foldoutElement.UpdateFromChildField(path, value.ToString());
                }
                else if (val is StyleInt)
                {
                    var style = (StyleInt)val;
                    var value = style.value;

                    if (styleProperty != null)
                    {
                        isDirty = true;
                        value   = styleSheet.GetInt(styleProperty.values[0]);
                    }

                    foldoutElement.UpdateFromChildField(path, value.ToString());
                }
                else if (val is StyleLength)
                {
                    var style = (StyleLength)val;
                    var value = (int)style.value.value;

                    if (styleProperty != null)
                    {
                        isDirty = true;

#if UNITY_2019_3_OR_NEWER
                        value = (int)styleSheet.GetDimension(styleProperty.values[0]).value;
#else
                        value = styleSheet.GetInt(styleProperty.values[0]);
#endif
                    }

                    foldoutElement.UpdateFromChildField(path, value.ToString());
                }
            }

            if (isDirty)
            {
                foldoutElement.header.AddToClassList(BuilderConstants.InspectorLocalStyleOverrideClassName);
            }
            else
            {
                foldoutElement.header.RemoveFromClassList(BuilderConstants.InspectorLocalStyleOverrideClassName);
            }
        }