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 每个数据项在一个中显示为三 TextBlockStackPanel元素。 在此示例中,数据对象是一 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}"/>

有关完整示例,请参阅数据模板化示例简介

注解

可以使用 a 指定 DataTemplate 数据对象的可视化效果。 DataTemplate在将此类对象ListBox绑定到ItemsControl整个集合时,对象特别有用。 如果没有特定说明,则 ListBox 显示集合中对象的字符串表示形式。 在这种情况下,可以使用 a 来 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)

适用于

另请参阅