• Есть ли аналог элемента «ItemsControl», но для одного элемента?

    @ShpriZZ Автор вопроса
    Итак, я нашёл нормальное решение. Без костылей, без неэффективного кода. Так и знал, что элегантное решение есть. Старое решение выведу в комментарии, потому что жалко потерянного на его написание времени.

    Для отображения объекта класса из ViewModel в зависимости от его типа используется элемент ContentPresenter. В xaml его использование выглядит примерно так:

    <ContentPresenter Content="{Binding Telephone}">
            <ContentPresenter.Resources>
            <DataTemplate DataType="{x:Type cl:Xiaomi}">
                <Label Content="Это ксяоми!"/>
            </DataTemplate>
            <DataTemplate DataType="{x:Type cl:IPhone}">
                <Label Content="Ну а это не очень телефон такой..."/>
            </DataTemplate>
        </ContentPresenter.Resources>
    </ContentPresenter>


    P.s. Мне говорили про этот элемент, но я почему-то подумал про ElementControl, не знаю даже почему.
    Ответ написан