ListView 概述

您所在的位置:网站首页 电子邮件概述内容 ListView 概述

ListView 概述

2023-11-13 18:51| 来源: 网络整理| 查看: 265

ListView 概述 项目 10/23/2023

ListView 控件提供了使用不同布局或视图中显示一组数据项的基础结构。 例如,用户可能需要在表格中显示数据项,并同时对表格的列进行排序。

注意

你可在代码参考部分中找到本文中引用的类型。

什么是 ListView?

ListView 派生自 ListBox。 通常,该控件的项为数据集合的成员,并且表示为 ListViewItem 对象。 ListViewItem 是一个 ContentControl 且只能包含单个子元素。 但是,该子元素可以是任何视觉元素。

为 ListView 定义视图模式

若要为 ListView 控件的内容指定视图模式,请设置 View 属性。 Windows Presentation Foundation (WPF) 提供的一个视图模式为 GridView,可在具有可自定义列的表格中显示数据项集合。

下面的示例演示如何为显示员工信息的 ListView 控件定义 GridView。

Last Name

下图演示上一个示例的数据显示方式。

通过定义继承自 ViewBase 类的类,可创建自定义视图模式。 ViewBase 类提供了创建自定义视图时所需的基础结构。 有关如何创建自定义视图的详细信息,请参阅为 ListView 创建自定义视图模式。

将数据绑定到 ListView

使用 Items 和 ItemsSource 属性为 ListView 控件指定项。 下面的示例将 ItemsSource 属性设置为名为 EmployeeInfoDataSource 的数据集合。

在 GridView 中,GridViewColumn 对象绑定到指定的数据字段。 以下示例通过为 DisplayMemberBinding 属性指定 Binding,将 GridViewColumn 对象绑定到数据字段。

GridViewColumn gvc1 = new GridViewColumn(); gvc1.DisplayMemberBinding = new Binding("FirstName"); gvc1.Header = "FirstName"; gvc1.Width = 100; Dim gvc1 As New GridViewColumn() gvc1.DisplayMemberBinding = New Binding("FirstName") gvc1.Header = "FirstName" gvc1.Width = 100

还可将 Binding 指定为 DataTemplate 定义的一部分,该定义可用于对列中的单元格设置样式。 在下面的示例中,用 ResourceKey 标识的 DataTemplate 为 GridViewColumn 设置 Binding。 请注意,此示例未定义 DisplayMemberBinding,因为这样做优先于 CellTemplate。

为实现 GridView 的 ListView 设置样式

ListView 控件包含 ListViewItem 对象,这些对象表示显示的数据项。 可使用以下属性定义数据项的内容和样式:

在 ListView 控件上,使用 ItemTemplate、ItemTemplateSelector 和 ItemContainerStyle 属性。

在 ListViewItem 控件上,使用 ContentTemplate 和 ContentTemplateSelector 属性。

为避免 GridView 中的单元格之间出现对齐问题,不要使用 ItemContainerStyle 设置属性,或添加对 ListView 中项的宽度有影响的内容。 例如,当在 ItemContainerStyle 中设置 Margin 属性时,可能会出现对齐问题。 若要指定属性或定义对 GridView 中项的宽度有影响的内容,请使用 GridView 类及其相关类(如 GridViewColumn)的属性。

有关如何使用 及其支持类的详细信息,请参阅 GridViewGridView 概述。

如果为 ListView 控件定义 ItemContainerStyle,并同时定义 ItemTemplate,必须在样式中包含 ContentPresenter 才能使 ItemTemplate 正常工作。

不要将 HorizontalContentAlignment 和 VerticalContentAlignment 属性用于 GridView 显示 ListView 内容。 若要指定 GridView 的列中内容的对齐方式,请定义 CellTemplate。

共享同一视图模式

两个 ListView 控件无法同时共享同一视图模式。 如果尝试将同一视图模式用于多个 ListView 控件,则会发生异常。

若要指定可同时被由多个 ListView 使用的视图模式,请使用模板或样式。

创建自定义视图模式

诸如 GridView 的自定义视图派生自 ViewBase 抽象类,该类提供了一些工具,用于显示表示为 ListViewItem 对象的数据项。

代码参考

本文引用了以下对象:

EmployeeInfoDataSource 数据收集。 如果使用的是 Visual Basic .NET,Window 元素的声明方式将与你在示例代码中看到的略微不同:

EmployeeInfo 类,用作 EmployeeInfoDataSource 数据集合的类型。

public class EmployeeInfo { private string _firstName; private string _lastName; private string _employeeNumber; public string FirstName { get {return _firstName;} set {_firstName = value;} } public string LastName { get {return _lastName;} set {_lastName = value;} } public string EmployeeNumber { get {return _employeeNumber;} set {_employeeNumber = value;} } public EmployeeInfo(string firstname, string lastname, string empnumber) { _firstName = firstname; _lastName = lastname; _employeeNumber = empnumber; } } Public Class EmployeeInfo Private _firstName As String Private _lastName As String Private _employeeNumber As String Public Property FirstName() As String Get Return _firstName End Get Set(ByVal value As String) _firstName = value End Set End Property Public Property LastName() As String Get Return _lastName End Get Set(ByVal value As String) _lastName = value End Set End Property Public Property EmployeeNumber() As String Get Return _employeeNumber End Get Set(ByVal value As String) _employeeNumber = value End Set End Property Public Sub New(ByVal firstname As String, ByVal lastname As String, ByVal empnumber As String) _firstName = firstname _lastName = lastname _employeeNumber = empnumber End Sub End Class 另请参阅 GridView ListView ListViewItem Binding GridView 概述 操作指南主题 Controls


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3