Private/ADLookups/_UserGroupsTabLookup.ps1

function _UserGroupsTabLookup {
    $OutputObject = $AllUsers | Where-Object SamAccountName -EQ $ADLookups_UsersGroupsTabSamAccountNameComboBox.Text

    if ($null -eq $OutputObject) {
        $ErrorString = "Unable to validate provided username. Make sure this is a SamAccountName.`nYou can verify this in the first tab, 'Find'."
        _ShowMessageBox -MessageText $ErrorString -ButtonType OK -MessageIcon Warning -MessageTitle "User's Group Tab Error"
    }
    else {
        $UserGroups = $OutputObject | Select-Object -ExpandProperty MemberOf
        $Groups = @()
        foreach ($Group in $UserGroups) {
            try {
                $Groups += [pscustomobject](Get-ADGroup @GetObjectSplat -Identity $Group)
            }
            catch {
                Write-Warning 'Group name mismatch.'
                $Groups += [pscustomobject]@{
                    Name = $Group
                }
            }
        }

        $Headers = [ordered]@{
            'Name'              = [string]
            'SamAccountName'    = [string]
            'GroupCategory'     = [string]
            'GroupScope'        = [string]
            'DistinguishedName' = [string]
        }

        $Script:UsersGroupsDataTable = New-Object System.Data.DataTable
        foreach ($Header in $Headers.GetEnumerator()) {
            $UsersGroupsDataTable.Columns.Add($Header.Key, $Header.Value)
        }
        foreach ($Item in $Groups) {
            $Array = @()
            Foreach ($Header in $Headers.GetEnumerator()) {
                $array += [string]$Item.$($Header.Key)
            }
            [void]$UsersGroupsDataTable.Rows.Add($array)
        }

        $ADLookups_UsersGroupTabDataGrid.ItemsSource = $UsersGroupsDataTable.DefaultView
    }
}