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(); }