#wpf #wpf-controls
#wpf #wpf-элементы управления
Вопрос:
У нас есть шаблоны, управляющие шаблоны и шаблоны данных для элементов управления WPF. Я не знаю, существуют ли еще какие-либо типы (пожалуйста, дайте мне знать, если таковые имеются). Но когда что использовать?
Ответ №1:
Посмотрите на FrameworkTemplate
производные типы:
ControlTemplate
— Определяет визуальную структуру и поведенческие аспектыControl
, которые могут быть общими для нескольких экземпляров элемента управления.;DataTemplate
— Описывает визуальную структуру объекта данных;ItemsPanelTemplate
— Указывает панель,ItemsPresenter
создаваемую для компоновки элементовItemsControl
.
PS: Как вы можете видеть, нет просто «Шаблона» 🙂
Комментарии:
1.
Template
Типа нет, ноControlTemplate
присваиваетсяTemplate
свойству (напримерButton.Template
), унаследованному отControl
.
Ответ №2:
<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>
Ответ №3:
Что касается того, когда что использовать — обычно вы можете определить по тому, что вы переопределяете. Он будет иметь либо тип ControlTemplate, либо DataTemplate.