导出 (0) 打印
全部展开

DataTemplate 类

更新: 2008 年 7 月

描述数据对象的可视结构。

命名空间:  System.Windows
程序集:  PresentationFramework(在 PresentationFramework.dll 中)
用于 XAML 的 XMLNS:http://schemas.microsoft.com/winfx/xaml/presentation

public class DataTemplate : FrameworkTemplate
public class DataTemplate extends FrameworkTemplate
public class DataTemplate extends FrameworkTemplate
<DataTemplate>
  VisualTree
</DataTemplate>

可使用 DataTemplate 指定数据对象的可视化。DataTemplate 对象在将 ItemsControl(如 ListBox)绑定到整个集合时尤其有用。如果没有特殊说明,ListBox 将在集合中显示对象的字符串表示形式。在此情况下,可以使用 DataTemplate 定义数据对象的外观。DataTemplate 的内容变成数据对象的可视结构。

有关深入讨论,请参见数据模板化概述

下面的示例演示如何创建一个内联 DataTemplateDataTemplate 指定每个数据项显示为 StackPanel 中的三个 TextBlock 元素。在本例中,数据对象是一个名为 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}"/>


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

此类型的任何公共 static(在 Visual Basic 中为 Shared) 成员都是线程安全的。但不保证所有实例成员都是线程安全的。

Windows Vista

.NET Framework 和 .NET Compact Framework 并不是对每个平台的所有版本都提供支持。有关支持的版本的列表,请参见.NET Framework 系统要求

.NET Framework

受以下版本支持:3.5、3.0

日期

修订

原因

2008 年 7 月

添加了新成员:DataTemplateKey 属性。

SP1 功能更改。

社区附加资源

添加
显示:
© 2015 Microsoft