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) |