dos plantillas de elementos para un cuadro de lista

Tengo una claseFruitViewModel. Describe ViewModels paraListBox artículos.

<ListBox ItemsSource="{Binding Fruits}">

Y tengo

class BananaViewModel : FruitViewModel

y

class AppleViewModel : FruitViewModel

Fruits&nbsp;contieneBananaViewModels yAppleViewModels que está obligado aItemsSource.

¿Cómo puedo hacer diferentes plantillas para manzanas y plátanos? Deben estar en una lista pero tener plantillas diferentes