DataTemplate 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
描述数据对象的可视结构。
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}"/>
有关完整示例,请参阅数据模板化示例简介。
注解
可以使用 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) |