DataTemplate Класс

Определение

Описывает визуальную структуру объекта данных.

public ref class DataTemplate : System::Windows::FrameworkTemplate
[System.Windows.Markup.DictionaryKeyProperty("DataTemplateKey")]
public class DataTemplate : System.Windows.FrameworkTemplate
[<System.Windows.Markup.DictionaryKeyProperty("DataTemplateKey")>]
type DataTemplate = class
    inherit FrameworkTemplate
Public Class DataTemplate
Inherits FrameworkTemplate
Наследование
Производный
Атрибуты

Примеры

В следующем примере показано, как создать встроенный 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}"/>

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

Комментарии

Вы используете для DataTemplate указания визуализации объектов данных. DataTemplate объекты особенно полезны при привязке ItemsControl , например ListBox к всей коллекции. Без определенных инструкций отображается ListBox строковое представление объектов в коллекции. В этом случае можно использовать DataTemplate для определения внешнего вида объектов данных. Содержимое DataTemplate становится визуальной структурой объектов данных.

Подробное обсуждение см. в разделе "Общие сведения о шаблоне данных".

Конструкторы

Имя Описание
DataTemplate()

Инициализирует новый экземпляр класса DataTemplate.

DataTemplate(Object)

Инициализирует новый экземпляр DataTemplate класса с указанным DataType свойством.

Свойства

Имя Описание
DataTemplateKey

Возвращает ключ по умолчанию объекта DataTemplate.

DataType

Возвращает или задает тип, для которого DataTemplate это предназначено.

Dispatcher

Dispatcher Возвращает это DispatcherObject значение, с которым связано.

(Унаследовано от DispatcherObject)
HasContent

Возвращает значение, указывающее, имеет ли этот шаблон оптимизированное содержимое.

(Унаследовано от FrameworkTemplate)
IsSealed

Возвращает значение, указывающее, находится ли этот объект в неизменяемом состоянии, чтобы его нельзя было изменить.

(Унаследовано от FrameworkTemplate)
Resources

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

(Унаследовано от FrameworkTemplate)
Template

Возвращает или задает ссылку на объект, который записывает или воспроизводит узлы XAML для шаблона при определении или применении шаблона средством записи.

(Унаследовано от FrameworkTemplate)
Triggers

Возвращает коллекцию триггеров, которые применяют значения свойств или выполняют действия на основе одного или нескольких условий.

VisualTree

Возвращает или задает корневой узел шаблона.

(Унаследовано от FrameworkTemplate)

Методы

Имя Описание
CheckAccess()

Определяет, имеет ли вызывающий поток доступ к этому DispatcherObject.

(Унаследовано от DispatcherObject)
Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
FindName(String, FrameworkElement)

Находит элемент, связанный с указанным именем, определенным в этом шаблоне.

(Унаследовано от FrameworkTemplate)
GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetType()

Возвращает Type текущего экземпляра.

(Унаследовано от Object)
LoadContent()

Загружает содержимое шаблона в качестве экземпляра объекта и возвращает корневой элемент содержимого.

(Унаследовано от FrameworkTemplate)
MemberwiseClone()

Создает неглубокую копию текущей Object.

(Унаследовано от Object)
RegisterName(String, Object)

Регистрирует новую пару имени или объекта в текущей области имен.

(Унаследовано от FrameworkTemplate)
Seal()

Блокирует шаблон, чтобы его нельзя было изменить.

(Унаследовано от FrameworkTemplate)
ShouldSerializeResources(XamlDesignerSerializationManager)

Возвращает значение, указывающее, должны ли процессы сериализации сериализовать значение Resources свойства в экземплярах этого класса.

(Унаследовано от FrameworkTemplate)
ShouldSerializeVisualTree()

Возвращает значение, указывающее, должны ли процессы сериализации сериализовать значение VisualTree свойства в экземплярах этого класса.

(Унаследовано от FrameworkTemplate)
ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)
UnregisterName(String)

Удаляет сопоставление имен и объектов из области имен XAML.

(Унаследовано от FrameworkTemplate)
ValidateTemplatedParent(FrameworkElement)

Проверяет шаблонный родительский элемент в наборе правил.

VerifyAccess()

Принудительно применяет, что вызывающий поток имеет доступ к этому DispatcherObject.

(Унаследовано от DispatcherObject)

Явные реализации интерфейса

Имя Описание
INameScope.FindName(String)

Возвращает объект, имеющий указанное имя идентификации.

(Унаследовано от FrameworkTemplate)
IQueryAmbient.IsAmbientPropertyAvailable(String)

Запрашивает, доступно ли указанное свойство окружения в текущей области.

(Унаследовано от FrameworkTemplate)

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

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