ItemsControl.ItemTemplate Свойство

Определение

Возвращает или задает шаблон DataTemplate, используемый для отображения каждого элемента.

public:
 property System::Windows::DataTemplate ^ ItemTemplate { System::Windows::DataTemplate ^ get(); void set(System::Windows::DataTemplate ^ value); };
[System.ComponentModel.Bindable(true)]
public System.Windows.DataTemplate ItemTemplate { get; set; }
[<System.ComponentModel.Bindable(true)>]
member this.ItemTemplate : System.Windows.DataTemplate with get, set
Public Property ItemTemplate As DataTemplate

Значение свойства

DataTemplate

Шаблон DataTemplate, указывающий визуализацию объектов данных. Значение по умолчанию — null.

Атрибуты

Примеры

В следующем примере показано, как создать встроенный DataTemplate код. Указывает DataTemplate , что каждый элемент данных отображается как три TextBlock элемента внутри StackPanel. В этом примере объект данных является классом.Task Обратите внимание, что каждый TextBlock элемент в этом шаблоне привязан к свойству Task класса.

<ListBox Width="400" Margin="10"
         ItemsSource="{Binding Source={StaticResource myTodoList}}">
   <ListBox.ItemTemplate>
     <DataTemplate>
       <StackPanel>
         <TextBlock Text="{Binding Path=TaskName}" />
         <TextBlock Text="{Binding Path=Description}"/>
         <TextBlock Text="{Binding Path=Priority}"/>
       </StackPanel>
     </DataTemplate>
   </ListBox.ItemTemplate>
 </ListBox>

Чаще всего определяется DataTemplate в разделе ресурсов, чтобы он был многократно используемым объектом, как показано в следующем примере:

<Window.Resources>
<DataTemplate x:Key="myTaskTemplate">
  <StackPanel>
    <TextBlock Text="{Binding Path=TaskName}" />
    <TextBlock Text="{Binding Path=Description}"/>
    <TextBlock Text="{Binding Path=Priority}"/>
  </StackPanel>
</DataTemplate>
</Window.Resources>

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

<ListBox Width="400" Margin="10"
         ItemsSource="{Binding Source={StaticResource myTodoList}}"
         ItemTemplate="{StaticResource myTaskTemplate}"/>

Полный пример см. в разделе Вводная часть примера стилизации и использования шаблонов.

Комментарии

Используется для ItemTemplate указания визуализации объектов данных. Если вы ItemsControl привязаны к объекту коллекции и не предоставляете конкретные инструкции по отображению с помощью, DataTemplateрезультирующий пользовательский интерфейс каждого элемента представляет собой строковое представление каждого объекта в базовой коллекции.

При настройке элемента управления пользовательского ItemTemplate ItemsControlинтерфейса создается следующим образом (с помощью ListBox примера):

  1. Во время создания ItemsPanel содержимого инициируется запрос ItemContainerGenerator на создание контейнера для каждого элемента данных. Для ListBoxконтейнера является ListBoxItem. Генератор возвращается в ItemsControl контейнер для подготовки контейнера.

  2. Часть подготовки включает копирование ItemTemplate элемента ListBox , который должен быть ContentTemplate частью ListBoxItem.

  3. Как и во всех ContentControl типах, ControlTemplate элемент a ListBoxItem содержит .ContentPresenter При применении шаблона создается объект ContentPresenter ContentTemplate , привязанный к ContentTemplate объекту ListBoxItem.

  4. Наконец, ContentPresenter это применяется ContentTemplate к самому себе и создает пользовательский интерфейс.

Если у вас несколько DataTemplate определенных и вы хотите предоставить логику для программного выбора и применения свойства DataTemplate, используйте ItemTemplateSelector это свойство.

Это ItemsControl обеспечивает большую гибкость для настройки визуальных элементов и предоставляет множество свойств стилей и шаблонов. ItemContainerStyle Используйте свойство или ItemContainerStyleSelector свойство, чтобы задать стиль, чтобы повлиять на внешний вид элементов, содержащих элементы данных. Например, созданные ListBoxконтейнеры являются ListBoxItem элементами управления, для ComboBoxкоторых они являются ComboBoxItem элементами управления. Чтобы повлиять на макет элементов, используйте ItemsPanel свойство. При использовании группировки в элементе управления можно использовать GroupStyle свойство или GroupStyleSelector свойство.

Дополнительные сведения см. в разделе "Общие сведения о шаблоне данных".

Использование атрибута XAML

<object ItemTemplate=" ResourceExtension TemplateResourceKey"/>  

Значения XAML

ResourceExtension
Одно из следующих значений: расширение разметки StaticResource или расширение разметки DynamicResource. Если сами стили не содержат ссылки на потенциальные ссылки во время выполнения, такие как системные ресурсы или пользовательские настройки, ссылка на расширение разметки StaticResource на стиль обычно рекомендуется для повышения производительности.

TemplateResourceKey
Строковое значение директивы x:Key, ссылающееся на шаблон, запрашиваемый в качестве ресурса.

Сведения о свойстве зависимостей

Поле идентификатора ItemTemplateProperty
Metadata properties set to true Нет

Применяется к

См. также раздел