As said you need a container. How you have the object render can be on the containers item template or you can set the objects rendering tempalte elsewhere.
For example:
<datatemplate datatype="{x:Type">
<stackpanel>
<textblock text="{Binding" path="Name}/">
<image source="{Binding" path="Icon}/">
</image></textblock></stackpanel>
</datatemplate>
As long as this was pulled in from a resource dictionary or defined in that controls resources it will render the object. Another option is to built the "Friend" view as a user control. That way you can modify it using the designer. If you do that you would do something like this:
<datatemplate>
<local:friendview xmlns:local="#unknown" />
</datatemplate>
Where FriendView is a usercontrol set up as you want.
Then just set up your container (as others have pointed out)
<listbox itemsource="{Binding" path="MyFriends}/">
</listbox>
Make sure MyFriends is public (you have it as private)