Выбор шаблона данных на основе типа

Я объявил следующие типы:

public interface ITest { }
public class ClassOne : ITest { }
public class ClassTwo : ITest { }

В моей модели представления я объявляю и инициализирую следующую коллекцию:

public class ViewModel
{
    public ObservableCollection<ITest> Coll { get; set; } = new ObservableCollection<ITest>
    {
        new ClassOne(),
        new ClassTwo()
    };  
}

На мой взгляд, я заявляю следующееItemsControl

<ItemsControl ItemsSource="{Binding Coll}">
    <ItemsControl.Resources>
        <DataTemplate DataType="local:ClassOne">
            <Rectangle Width="50" Height="50" Fill="Red" />
        </DataTemplate>
        <DataTemplate DataType="local:ClassTwo">
            <Rectangle Width="50" Height="50" Fill="Blue" />
        </DataTemplate>
    </ItemsControl.Resources>
</ItemsControl>

То, что я ожидаю увидеть, это красный квадрат, за которым следует синий квадрат, вместо этого я вижу следующее:

Что я делаю неправильно?

Ответы на вопрос(2)

Ваш ответ на вопрос