Элемент TableView
в .NET MAUI, обычно используется для того, чтобы показать набор элементов, сгруппированных в разделы. Например, TableView
может использоваться для страницы с настройками вашего приложения.
Свойства TableView
Элемент TableView
предоставляет нам следующие свойства:
Свойство | Тип | Описание |
Intent |
TableIntent |
Определяет назначение таблицы в iOS и может принимать следующие значения:
|
HasUnevenRows |
bool |
Указывает может ли таблица иметь строки различной высоты. Значение по умолчанию — false |
Root |
TableRoot |
Определяет содержимое таблицы |
RowHeight |
int |
Высота строк таблицы, если свойство HasUnevenRows имеет значение false |
Чтобы создать экземпляр TableView
в .NET MAUI мы должны:
- Разместить
TableView
на странице приложения - Определить внутри
TableView
один или несколько элементовTableRoot
- Внутри
TableRoot
определить один или несколько элементовTableSection
- Внутри
TableSection
определить один или несколько элементов типаCell
- Внутри
Cell
определить необходимые элементы управления
Рассмотрим весь этот процесс работы с TableView
в .NET MAUI подробнее.
Создание таблицы TableView
Создадим новое приложение .NET MAUI и разместим на странице MainPage.xaml следующий код:
<TableView> <TableRoot> <TableSection Title="Секция №1" TextColor="Blue"> <TextCell Text="Это обычный текст в ячейке таблицы" Detail="Пояснения к тексту" /> <TextCell Text="Это обычный текст в ячейке таблицы" Detail="Пояснения к тексту" /> <TextCell Text="Это обычный текст в ячейке таблицы" Detail="Пояснения к тексту" /> </TableSection> <TableSection Title="Секция №2" TextColor="Blue"> <TextCell Text="Это обычный текст в ячейке таблицы" Detail="Пояснения к тексту" /> <TextCell Text="Это обычный текст в ячейке таблицы" Detail="Пояснения к тексту" /> <TextCell Text="Это обычный текст в ячейке таблицы" Detail="Пояснения к тексту" /> </TableSection> </TableRoot> </TableView> </ContentPage>
Здесь мы воспроизвели все пункты списка по созданию TableView
, который представлен выше. Запустим приложение и посмотрим на результат:
Наша таблица содержит две секции в каждой из которых размещено по три ячейки с текстом. Здесь стоит обратить внимание на то, как мы определили текстовую ячейку таблицы, например:
<TextCell Text="Это обычный текст в ячейке таблицы" Detail="Пояснения к тексту" />
TextCell
— это класс-наследник Cell
. Всего, на данный момент, TableView
поддерживает пять типов ячеек:
Тип ячейки | Описание |
EntryCell |
Ячейка Cell с меткой и однострочным полем ввода текста. |
SwitchCell |
Ячейка Cell с меткой и переключателем Switch . |
TextCell |
Ячейка с простым текстом |
ImageCell |
Ячейка с картинкой |
ViewCell |
Ячейка с содержимым, определяемым разработчиком |
В качестве примера, используем некоторые типы этих ячеек в нашем приложении. Перепишем код XAML страницы MainPage следующим образом:
<?xml version="1.0" encoding="utf-8" ?> <ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" x:Class="MauiApp7.MainPage"> <TableView> <TableRoot> <TableSection Title="Секция с переключателем" TextColor="Blue"> <SwitchCell Text="Включено" On="True" OnColor="Red" OnChanged="SwitchCell_OnChanged"/> <TextCell Text="Результат" x:Name="SwitchResult"/> </TableSection> <TableSection Title="Секция c текстовым полем" TextColor="Green"> <EntryCell Label="Введите текст" Placeholder="Введите что-нибудь" Completed="EntryCell_Completed" x:Name="EntryData"/> <TextCell Text="Результат" DetailColor="Gray" x:Name="EntryResult"/> </TableSection> </TableRoot> </TableView> </ContentPage>
Также добавим в файл отдельного кода MainPage.xaml.cs два обработчика событий:
private void SwitchCell_OnChanged(object sender, ToggledEventArgs e) { SwitchResult.Detail = $"{e.Value}"; } private void EntryCell_Completed(object sender, EventArgs e) { EntryResult.Detail = EntryData.Text ; }
Рассмотрим этот пример подробнее. В первой секции мы разместили ячейку с переключателем:
<SwitchCell Text="Включено" On="True" OnColor="Red" OnChanged="SwitchCell_OnChanged"/>
У этой ячейки мы определили следующие свойства:
Text
— поясняющий текст, который будет размещен слева от переключателяOn
— свойство, определяющее значение переключателя по умолчанию (true
— переключатель включен,false
— выключен)OnColor
— цвет переключателя, при наведении на него курсораOnChanged
— событие, которое генерируется каждый раз при изменении состояния переключателя. В нашем случае, обработчик этого события изменяет свойствоDetail
во второй — текстовой ячейке секции:
<TextCell Text="Результат" x:Name="SwitchResult"/>
Сам обработчик события SwitchCell_OnChanged
представлен выше.
Вторая секция содержит ячейку с текстовым полем:
<EntryCell Label="Введите текст" Placeholder="Введите что-нибудь" Completed="EntryCell_Completed" x:Name="EntryData"/>
У этой ячейки определены следующие свойства:
Label
— метка слева от текстового поля, содержащая поясненияPlaceholder
— текст, отображаемый в текстовом поле, пока оно не содержит никакого значения (см. свойстваEntry
)Completed
— событие, которое генерируется, когда пользователь завершает ввод текста (генерируется, когда пользователь нажимает кнопку Enter на клавиатуре). Обработчик этого события также выводит результат во вторую ячейку секции:
<TextCell Text="Результат" DetailColor="Gray" x:Name="EntryResult"/>
Также, у ячейки с результатом мы установили значение свойства DetailColor
(цвет поясняющего текста) Теперь запустим приложение и посмотрим на результат
Итого
Элемент TableView
используется для удобного табличного представления группы элементов управления, например, настроек приложения. Для TableView определено пять различных типов ячеек. Каждый тип ячейки используется для размещения в ней определенных элементов управления — переключателей, текстовых полей, обычного текста, картинок или своего содержимого.