Шаблон против ControlTemplate против DataTemplate - PullRequest
1 голос
/ 10 мая 2011

У нас есть шаблоны, шаблоны элементов управления и шаблоны данных для элементов управления WPF.Я не знаю, есть ли еще типы (пожалуйста, дайте мне знать, если таковые имеются).Но когда использовать что?

Ответы [ 3 ]

3 голосов
/ 10 мая 2011

Посмотрите на FrameworkTemplate производные типы:

  • ControlTemplate - Определяет визуальную структуру и поведенческие аспекты Control, которые могут совместно использоваться несколькими экземплярами элемента управления.;
  • DataTemplate - описывает визуальную структуру объекта данных;
  • ItemsPanelTemplate - указывает панель, которую ItemsPresenter создает для макета элементов ItemsControl.

PS: Как вы можете видеть, не существует просто "шаблона":)

1 голос
/ 10 мая 2011

HierarchicalDataTemplate

<UserControl.Resources>
    <HierarchicalDataTemplate DataType="{x:Type src:League}" ItemsSource="{Binding Path=Divisions}">
        <TextBlock Text="{Binding Path=Name}"/>
    </HierarchicalDataTemplate>

    <HierarchicalDataTemplate DataType="{x:Type src:Division}" ItemsSource = "{Binding Path=Teams}">
        <TextBlock Text="{Binding Path=Name}"/>
    </HierarchicalDataTemplate>

    <DataTemplate DataType="{x:Type src:Team}">
        <TextBlock Text="{Binding Path=Name}"/>
    </DataTemplate>
</UserControl.Resources>
0 голосов
/ 10 мая 2011

Что касается того, когда что использовать - обычно вы можете определить, что вы переопределяетеОн будет иметь тип ControlTemplate или DataTemplate.

...