Since the value field accepts an anonymous function you can do it like this:
CHtml::listData(
$eventLocationByUser,
'id',
function($loc){ return $loc->id . " " . $loc->type; }
);
And here is the example from the docs.
One alternative way could be to add another field to your model (lets say $idtype for example), and every time you create or save a record you update this field as well (using a behavior perhaps?) And then you can use:
CHtml::listData( $eventLocationByUser, 'id', 'idtype' });
It could potentially move business logic from your view to your model, but only you can decide if it's worth the hassle.