Информация
Запрошенная вами тема показана ниже. Однако эта тема не включена в библиотеку.

ItemsControl.ItemTemplate - свойство

Обновлен: Ноябрь 2007

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

Пространство имен:  System.Windows.Controls
Сборка:  PresentationFramework (в PresentationFramework.dll)
XMLNS для XAML: http://schemas.microsoft.com/winfx/xaml/presentation

[BindableAttribute(true)]
public DataTemplate ItemTemplate { get; set; }
/** @property */
/** @attribute BindableAttribute(true) */
public DataTemplate get_ItemTemplate()
/** @property */
/** @attribute BindableAttribute(true) */
public  void set_ItemTemplate(DataTemplate value)

public function get ItemTemplate () : DataTemplate
public function set ItemTemplate (value : DataTemplate)
<object>
  <object.ItemTemplate>
    <DataTemplate .../>
  </object.ItemTemplate>
</object>
<object ItemTemplate=" ResourceExtension TemplateResourceKey"/>
ResourceExtension
                    Одно из следующих: Расширение разметки StaticResource или Расширение разметки DynamicResource. Пока стили сами содержат ссылки на потенциальные выполняемые ссылки, например, системные ресурсы или пользовательские настройки, ссылка Расширение разметки StaticResource на стиль обычно рекомендуется для повышения производительности.
                TemplateResourceKey
                    Значение строки Атрибут x:Key, ссылающееся на шаблон, запрашиваемый в качестве ресурса.
                

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

Тип: System.Windows.DataTemplate
DataTemplate, указывающее визуализацию объектов данных. Значением по умолчанию является null.

Поле идентификатора

ItemTemplateProperty

Свойствам метаданных присвоено значение true

Отсутствует

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

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

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

  2. Часть подготовки включает копирование ItemTemplate ListBox для ContentTemplate ListBoxItem.

  3. Аналогично всем типам ContentControl ControlTemplate ListBoxItem содержит ContentPresenter. При применении шаблона создается ContentPresenter, ContentTemplate которого привязан к ContentTemplate ListBoxItem.

  4. В итоге ContentPresenter применяет данный ContentTemplate самому себе и создает Пользовательский интерфейс.

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

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

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

В следующем примере иллюстрируется способ создания встроенного 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}"/>


Полный пример см. в разделе Введение в шаблоны данных.

Windows Vista

Среды .NET Framework и .NET Compact Framework поддерживают не все версии каждой платформы. Поддерживаемые версии перечислены в разделе Требования к системе для .NET Framework.

.NET Framework

Поддерживается в версиях: 3.5, 3.0

Добавления сообщества

Показ:
© 2015 Microsoft