Лабораторная работа 21
Создание набора CRUD-операций в .NET MAUI с использованием MVVM.
Задание 1.
Создайте проект .NET MAUI.
Прежде, чем приступить к разработке проекта, добавьте следующие пакеты Nuget:
Sqlite-net-pcl
SQLitePCLRaw.bundle_green
SQLitePCLRaw.core
SQLitePCLRaw.provider.dynamic_cdecl
SQLitePCLRaw.provider.sqlite3
Добавьте в проект новые папки Views, ViewModels, Models.
В папке Models создайте класс StudentModel со следующим содержимым:
В папку Views добавьте новый элемент – из раздела .NET MAUI файл типа .NET MAUI ContentPage(XAML):
В папку ViewModels добавьте класс:
StudentListPageViewModel.cs.
Класс сделайте публичным.
В файл MauiProgram.cs добавьте следующие строки:
Изменим класс StudentListPage.xaml.cs, связав его с моделью представления через передаваемый параметр:
Изменим файл AppShell.xaml, связав его не с локальными файлами, а с представлениями:
Добавим в проект еще одну папку Services:
В этой папке создайте интерфейс с названием IStudentService.
Сделайте этот интерфейс публичным.
Добавьте в папку Services класс StudentService.
Внесите следующие изменения в класс:
В интерфейсе добавьте строку:
В предыдущем классе появится ошибка:
Посмотрите ошибку и в качестве возможного решения выберите «Релизовать интерфейс».
Должен появиться следующий код:
В интерфейс добавим основные операции по добавлению, удалению и обновлению списка:
В классе вновь возникнет ошибка, потому что часть интерфейса пока не реализована. Ошибку исправьте таким же образом, как и раньше.
Теперь свяжем наш класс с базой данных. Для этого добавим конструктор и подключение к БД:
Теперь, когда организована связь с базой данных, мы можем изменить содержимое основных операций на более конкретные действия:
Возникнет ошибка, в связи с тем, что мы изменили тип возвращаемых значений. Вернитесь в интерфейс и измените типы:
Теперь добавим в папку Views файл типа .NET MAUIContentPage(XAML):
Добавим в папку ViewModel класс:
Класс сделайте публичным.
Теперь внесем изменения в файл MauiProgram.cs:
Внесем изменение в созданный ранее файл AddUpdateStudentDetail.xaml.cs:
Изменим также внешний вид представления:
И изменим представление StudentListPage:
Установим еще один пакет Nuget:
Теперь опишем класс StudentListPageViewModel.cs:
Внесем изменения в файл AppShell.xaml.cs:
В файле StudentListPage.xaml добавим следующий код:
Изменим внешний вид страницы AddUpdateStudentDetail.xaml:
Добавим в класс AddUpdateStudentDetailViewModel.cs следующий код:
Теперь можно добавить привязки в представление AddUpdateStudentDetail.xaml:
Внесем изменения в файл AddUpdateStudentDetailViewModel.cs добавив в него функцию добавления записи в таблицу и соответствующие уведомления.
Внесем изменения в файл StudentListPageViewModel.cs, добавив функции.
В файл StudentListPage.xaml.cs добавим:
Пометьте функцию как команду и сделайте её открытой:
Добавим вывод данных в файл StudentListPage.xaml:
Отформатируем вывод данных в файле StudentListPage.xaml:
Добавим команду в StudentListPageViewModel.cs:
Внесем изменения в файл AddUpdateStudentDetailViewModel.cs:
Благодаря внесенным изменениям, мы можем обращаться к полям таблицы как к частям объекта StudentDetail:
И теперь мы можем удалить лишние строчки кода, обращаясь к полям через общее название:
Добавим отклик в файл StudentListPage.xaml:
models:StudentModel
Внесем последние изменения в файл AddUpdateStudentDetailViewModel.cs: