DataRepeater 控件简介 (Visual Studio)
Visual Basic Power Pack DataRepeater 控件是显示重复数据(例如,数据库表中的行)的控件的可滚动容器。 当您需要进一步控制数据的布局时,可用它来取代 DataGridView 控件。 DataRepeater 通过在一个滚动视图中创建多个实例来“重复”一组相关控件。 这使用户可同时查看多条记录。
概述
设计时,DataRepeater 控件包含两个部分。 外层区域是视区,运行时滚动数据将显示在该区域。 内层(顶部)区域称为项模板,将在运行时重复的控件放置在该区域,通常一个控件对应于数据源中的一个字段。 项模板中的属性和控件封装在 ItemTemplate 属性中。
运行时,ItemTemplate 复制到虚拟 DataRepeaterItem 对象中,该对象用于显示在每条记录滚动到视图中时的数据。 您可以在 DrawItem 事件中自定义各条记录的显示,例如基于字段所包含的值突出显示该字段。 有关更多信息,请参见 如何:更改 DataRepeater 控件的外观 (Visual Studio)。
DataRepeater 控件最常见的用途是显示数据表或其他绑定数据源中的数据。 除了 ADO.NET 数据对象外,还可以将 DataRepeater 控件绑定到任何实现 IList 接口(包括数组)的类、任何实现 IListSource 接口的类、任何实现 IBindingList 接口的类或任何实现 IBindingListView 接口的类。
数据绑定
通常情况下,通过将字段从**“数据源”**窗口拖到 DataRepeater 控件来完成数据绑定。 有关更多信息,请参见 如何:在 DataRepeater 控件中显示绑定数据 (Visual Studio)。
处理大量数据时,可以将 VirtualMode 属性设置为 True 来显示可用数据的子集。 虚拟模式要求实现从中填充 DataRepeater 的数据缓存,并且您必须在运行时控制与数据缓存的所有交互。 有关更多信息,请参见 DataRepeater 控件中的虚拟模式 (Visual Studio)。
您还可以在 DataRepeater 控件上显示未绑定的控件。 例如,可以显示在每个项上都重复的图像。 有关更多信息,请参见 如何:在 DataRepeater 控件中显示未绑定的数据 (Visual Studio)。
事件
DataRepeater 控件最重要的事件是 DrawItem 事件和 CurrentItemIndexChanged 事件,前者在新项滚动到视图中时引发,后者在选择项时引发。 您可以使用 DrawItem 事件来更改项的外观。 例如,可以突出显示负值。 使用 CurrentItemIndexChanged 事件访问选中某项时控件的值。
DataRepeater 控件在代码编辑器中公开所有标准的控件事件。 但是,不应该使用其中某些事件。 运行时将不会引发键盘和鼠标事件,如 KeyDown、Click 和 MouseDown,因为 DataRepeater 控件自身从来都不会有焦点。
DataRepeaterItem 不会在设计时公开事件,因为它只能在运行时创建。 如果希望处理键盘和鼠标事件,可以在运行时将 Panel 控件添加到 ItemTemplate,然后处理 Panel 的事件。 有关更多信息,请参见 DataRepeater 控件疑难解答 (Visual Studio)。
自定义
可通过多种方法在运行时和设计时自定义 DataRepeater 控件的外观和行为。 可以设置属性来更改颜色、隐藏或修改项标头以及将方向从垂直改为水平等。 有关更多信息,请参见如何:更改 DataRepeater 控件的外观 (Visual Studio)、如何:在 DataRepeater 控件中显示项标题 (Visual Studio)和如何:更改 DataRepeater 控件的布局 (Visual Studio)。
请注意,有些属性适用于 DataRepeater 控件自身,而有些属性则仅适用于 ItemTemplate。 请确保在设置属性前选择了控件的正确部分。 有关更多信息,请参见 如何:更改 DataRepeater 控件的外观 (Visual Studio)。
其他自定义包括控制添加或删除记录的能力、添加搜索功能以及以主格式和详细信息格式显示相关数据。 有关更多信息,请参见如何:禁止添加和删除 DataRepeater 项 (Visual Studio)、如何:在 DataRepeater 控件中搜索数据 (Visual Studio) 和如何:使用两个 DataRepeater 控件创建主/详细信息窗体 (Visual Studio)。
请参见
任务
演练:在 DataRepeater 控件中显示数据 (Visual Studio)
DataRepeater 控件疑难解答 (Visual Studio)