public override int CompareTo(TreeViewItem other)
    {
        LanguageDatatableRow otherRow = other as LanguageDatatableRow;

        if (otherRow == null)
        {
            return(1);
        }

        return(this.guid.GetHashCode() - otherRow.guid.GetHashCode());
    }
    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);
    }