I have an ObservableCollection that contains two different types.
ObservableCollection
I want to bind this list to a ListBox and display different DataTemplate
You have to use a DataTemplateSelector. See here for an example.
Addiontal information on MSDN