TableView

您所在的位置:网站首页 表格分色显示 TableView

TableView

2023-05-08 19:09| 来源: 网络整理| 查看: 265

TableView 项目 05/05/2023

浏览示例

.NET 多平台应用 UI (.NET MAUI) TableView 显示可按节分组的可滚动项的表。 TableView通常用于显示每行具有不同外观的项,例如显示设置表。

虽然 TableView 管理表的外观,但表中每个项的外观由 Cell定义。 .NET MAUI 包括五种用于显示不同数据组合的单元格类型,还可以定义显示所需任何内容的自定义单元格。

TableView 定义以下属性:

Intent,类型 TableIntent为 ,定义表在 iOS 上的用途。 HasUnevenRows类型 bool为 ,指示表中的项是否可以具有不同高度的行。 此属性的默认值为 false。 Root,类型 TableRoot为 ,定义 的 TableView子级。 RowHeight类型int为 时,确定每行HasUnevenRowsfalse的高度。

HasUnevenRows和 RowHeight 属性由 BindableProperty 对象提供支持,这意味着它们可以是数据绑定的目标,并具有样式。

属性的值 Intent 仅有助于定义 TableView iOS 上的外观。 此属性应设置为 枚举的值 TableIntent ,该枚举定义以下成员:

Menu,用于显示可选择的菜单。 Settings,用于显示配置设置表。 Form,用于呈现数据输入表单。 Data,用于呈现数据。 创建 TableView

若要创建表,请创建一个 TableView 对象,并将其 Intent 属性设置为 成员 TableIntent 。 的子级 TableView 必须是 TableRoot 对象,该对象是一个或多个 TableSection 对象的父对象。 每个 TableSection 游戏都包含一个可选标题(也可以设置其颜色)和一个或多个 Cell 对象。

以下示例演示如何创建 TableView:

在此示例中, TableView 使用 TextCell 对象定义菜单:

注意

每个 TextCell 都可以在点击时执行命令,前提是属性 Command 设置为有效的 ICommand 实现。

定义单元格外观

中的每个 TableView 项都由 对象 Cell 定义,所使用的 Cell 类型定义单元格数据的外观。 .NET MAUI 包含以下内置单元格:

TextCell,在单独的行上显示主要文本和辅助文本。 ImageCell,它以单独的行显示主文本和辅助文本的图像。 SwitchCell,显示文本和可以打开或关闭的开关。 EntryCell,显示可编辑的标签和文本。 ViewCell,这是一个自定义单元格,其外观由 View定义。 如果要完全定义 中 TableView每个项的外观,应使用此单元格类型。 文本单元格

在 TextCell 单独的行上显示主要文本和辅助文本。 TextCell 定义以下属性:

Text,类型 string为 ,定义要显示的主要文本。 TextColor,类型 Color为 ,表示主要文本的颜色。 Detail,类型 string为 ,定义要显示的辅助文本。 DetailColor,类型 Color为 ,指示辅助文本的颜色。 Command类型 ICommand为 ,定义在点击单元格时执行的命令。 CommandParameter,类型 object为 ,表示传递给 命令的参数。

这些属性由 BindableProperty 对象提供支持;也就是说,它们可以作为数据绑定的目标,并能进行样式设置。

以下示例演示如何使用 TextCell 定义 中 TableView项的外观:

以下屏幕截图显示了生成的单元格外观:

图像单元格

在 ImageCell 单独的行上显示包含主要文本和辅助文本的图像。 ImageCell 从 TextCell继承属性,并定义 ImageSource 类型的 ImageSource属性,该属性指定要在单元格中显示的图像。 此属性由 BindableProperty 对象支持,这意味着它可以是数据绑定的目标,并可以设置样式。

以下示例演示如何使用 ImageCell 定义 中 TableView项的外观:

以下屏幕截图显示了生成的单元格外观:

切换单元格

显示 SwitchCell 文本和可以打开或关闭的开关。 SwitchCell 定义以下属性:

Text,类型 string为 ,定义要在开关旁边显示的文本。 On类型为 bool,表示开关是打开还是关闭。 OnColor,类型 Color为 ,指示开关在处于位置时的颜色。

这些属性由 BindableProperty 对象提供支持;也就是说,它们可以作为数据绑定的目标,并能进行样式设置。

SwitchCell 还定义在 OnChanged 交换机更改状态时引发的事件。 ToggledEventArgs此事件附带的对象定义一个Value属性,该属性指示开关是打开还是关闭。

以下示例演示如何使用 SwitchCell 定义 中 TableView项的外观:

以下屏幕截图显示了生成的单元格外观:

输入单元格

显示 EntryCell 可编辑的标签和文本数据。 EntryCell 定义以下属性:

HorizontalTextAlignment,类型 TextAlignment为 ,表示文本的水平对齐方式。 Keyboard类型 Keyboard为 ,确定输入文本时要显示的键盘。 Label,类型 string为 ,表示要显示在可编辑文本左侧的文本。 LabelColor,类型 Color为 ,定义标签文本的颜色。 Placeholder,类型 string为 ,表示当 属性为空时 Text 显示的文本。 Text,类型 string为 ,定义可编辑的文本。 VerticalTextAlignment,类型 TextAlignment为 ,表示文本的垂直对齐方式。

这些属性由 BindableProperty 对象提供支持;也就是说,它们可以作为数据绑定的目标,并能进行样式设置。

EntryCell 还定义在 Completed 用户命中返回键时引发的事件,以指示编辑已完成。

以下示例演示如何使用 EntryCell 定义 中 TableView项的外观:

以下屏幕截图显示了生成的单元格外观:

查看单元格

是 ViewCell 一个自定义单元格,其外观由 View定义。 ViewCell定义 类型ViewView为 的属性,该属性定义表示单元格内容的视图。 此属性由 BindableProperty 对象支持,这意味着它可以是数据绑定的目标,并可以设置样式。

注意

由于 View 属性是 ViewCell 类的内容属性,因此不需要通过 XAML 显式设置。

以下示例演示如何使用 ViewCell 定义 中 TableView项的外观:

在 ViewCell中,布局可由任何 .NET MAUI 布局管理。 以下屏幕截图显示了生成的单元格外观:

调整项目大小

默认情况下,中相同类型 TableView 的所有单元格的高度相同。 但是,可以使用 和 RowHeight 属性更改HasUnevenRows此行为。 默认情况下, HasUnevenRows 属性为 false。

可以将 RowHeight 属性设置为表示 int 中 TableView每个项的高度的 ,前提是 HasUnevenRows 为 false。 当 设置为 true时HasUnevenRows,中的每个TableView项可以具有不同的高度。 每个项的高度将派生自每个单元格的内容,因此每个项的大小将根据其内容进行调整。

如果 HasUnevenRows 属性为 true,则可以通过更改单元格中元素的布局相关属性,在运行时以编程方式调整单个单元格的大小。 以下示例在点击单元格时更改单元格的高度:

void OnViewCellTapped(object sender, EventArgs e) { label.IsVisible = !label.IsVisible; viewCell.ForceUpdateSize(); }

在此示例中, OnViewCellTapped 执行事件处理程序以响应正在点击的单元格。 事件处理程序更新 对象的可见性 Label , Cell.ForceUpdateSize 方法更新单元格的大小。 Label如果 已使 可见,则单元格的高度将增加。 Label如果 已使 不可见,则单元格的高度将减小。

警告

过度使用动态项大小可能会导致 TableView 性能下降。

从右到左布局

TableView可以通过将其 属性设置为 RightToLeft来按从右到左的流方向布局其FlowDirection内容。 但是,理想情况下, FlowDirection 应在页面或根布局上设置 属性,这会导致页面或根布局中的所有元素响应流方向:

...

具有父元素的默认值 FlowDirection 为 MatchParent。 因此, TableView 从 ContentPage继承FlowDirection属性值。



【本文地址】


今日新闻


推荐新闻


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