Приложения для Windows
Эта статья переведена вручную. Наведите указатель мыши на предложения статьи, чтобы просмотреть исходный текст.
Перевод
Текст оригинала
Информация
Запрошенная вами тема показана ниже. Однако эта тема не включена в библиотеку.

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

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

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

[BindableAttribute(true)]
public DataTemplate ItemTemplate { get; set; }
<object>
  <object.ItemTemplate>
    <DataTemplate .../>
  </object.ItemTemplate>
</object>
<object ItemTemplate=" ResourceExtension TemplateResourceKey"/>

Значения XAML

ResourceExtension

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

TemplateResourceKey

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

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

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

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

ItemTemplateProperty

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

NONE


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

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

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

  2. Часть подготовки включает копирование ItemTemplateListBox для ContentTemplateListBoxItem.

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

  4. В итоге ContentPresenter применяет данный ContentTemplate самому себе и создает UI.

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

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

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

В следующем примере показано, как создать встроенный DataTemplate. DataTemplate указывает, что каждый элемент данных отображается в виде 3 элементов 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}"/>


Полный код примера см. в разделе Introduction to Data Templating Sample (пример "Введение в шаблоны данных").

.NET Framework

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

.NET Framework (клиентский профиль)

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

Windows 7, Windows Vista с пакетом обновления 1 (SP1) или выше, Windows XP с пакетом обновления 3 (SP3), Windows Server 2008 (Server Core не поддерживается), Windows Server 2008 R2 (Server Core поддерживается с пакетом обновления 1 (SP1) или более поздним), Windows Server 2003 SP2

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

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

Показ:
© 2016 Microsoft