private int FindItemIndexInSerializedArray(SerializedProperty rowsProp, TreeViewItem rowItem)
    {
        LanguageDatatableRow lgDtRow = rowItem as LanguageDatatableRow;
        string referenceGuid         = lgDtRow.GetGuid().ToString();

        for (int i = 0; i < rowsProp.arraySize; ++i)
        {
            SerializedProperty rowProp = rowsProp.GetArrayElementAtIndex(i);
            string             rowGuid = GuidSPHelper.GetGuidValue(GetGuidProp(rowProp));
            if (referenceGuid == rowGuid)
            {
                return(i);
            }
        }
        return(-1);
    }
    void AddNewLine()
    {
        SerializedProperty rowsProp = GetRowsProp();
        int newItemIndex            = rowsProp.arraySize;

        rowsProp.InsertArrayElementAtIndex(newItemIndex);
        SerializedProperty newRowProp = rowsProp.GetArrayElementAtIndex(newItemIndex);

        SerializedProperty newKeyProp = GetLanguageRowKeyProp(newRowProp);

        newKeyProp.stringValue = "None";

        SerializedProperty guidProp = GetGuidProp(newRowProp);

        GuidSPHelper.CreateAndAssignNewGuid(guidProp);

        LCLocalizationSettings settings          = LocalizationManager.Instance.GetCurrentSettings();
        SerializedProperty     languageItemsProp = GetLanguageItemsProp(newRowProp);

        languageItemsProp.arraySize = settings.LanguagesCount;

        _languageDatatableSo.ApplyModifiedProperties();
    }