В чем разница между ContentControl.Template и ContentControl.ContentTemplate

В чем разница между ContentControl.Template и ContentControl.ContentTemplate? И когда я использую что?

Например, я мог бы написать в файле xaml для WPF:

<ContentControl>
    <ContentControl.Template>
        <ControlTemplate>
            <Label Content="This is from the Template"/>
        </ControlTemplate>
    </ContentControl.Template>
</ContentControl>

Обратите внимание на ContentControl. Тег шаблона

или я мог бы написать это:

<ContentControl>
    <ContentControl.ContentTemplate>
        <DataTemplate>
            <Label Content="This is From the ContentTemplate"/>
        </DataTemplate>
    </ContentControl.ContentTemplate>
</ContentControl>

Обратите внимание на ContentControl. ContentTemplate Tag

Результат выглядит одинаково, и в первом случае я использую ControlTemplate, а в другом - DataTemplate. Однако как мне обманывать, если мне нужно использовать .Template или .ContentTemplate? И какие последствия это имеет (например, для DataBinding, Property Inheritance, ...).


person user966765    schedule 27.09.2011    source источник


Ответы (1)


Свойство Template определяет внешний вид Сам элемент управления и ContentTemplate определяет шаблон области Content элемента управления. Интересный момент от MSDN:

Если у элемента управления нет ControlTemplate, этот элемент управления не появится в вашем приложении.

Это становится более ясным, если мы посмотрим на типы данных обоих свойств:

person sll    schedule 27.09.2011