Phil Middlemiss describes a technique to use multiple data templates inside an ItemsControl, DataGrid or other controls that show lists of items.
For example, I may have a collection of company staff members to display in a single ListBox, but the managerial staff need to have extra information displayed (they always do!), and each level is styled slightly differently like this for example: