namespace NotesDataAnalyst { public partial class AppShell : Shell { public AppShell() { InitializeComponent(); CategoryManager.LoadCategories(); // Загружаем категории при запуске // Регистрация маршрута для MainPage Routing.RegisterRoute("MainPage", typeof(MainPage)); } private async void OnCategoriesMenuClicked(object sender, EventArgs e) { // Открываем всплывающее окно с возможностью управления категориями string action = await DisplayActionSheet("Управление категориями", "Отмена", null, "Выбрать категорию", "Добавить категорию", "Удалить категорию"); switch (action) { case "Выбрать категорию": await SelectCategory(); break; case "Добавить категорию": await AddCategory(); break; case "Удалить категорию": await DeleteCategory(); break; } } private async Task SelectCategory() { // Всплывающее окно для выбора категории string selectedCategory = await DisplayActionSheet("Выберите категорию", "Отмена", null, CategoryManager.Categories.ToArray()); if (!string.IsNullOrEmpty(selectedCategory) && selectedCategory != "Отмена") { // Устанавливаем выбранную категорию CategoryManager.ActiveCategory = selectedCategory; // Переход к MainPage относительно текущего стека, без абсолютного маршрута await Shell.Current.GoToAsync("MainPage"); } } private async Task AddCategory() { // Всплывающее окно для ввода названия новой категории string newCategory = await DisplayPromptAsync("Новая категория", "Введите название категории:"); if (!string.IsNullOrWhiteSpace(newCategory) && !CategoryManager.Categories.Contains(newCategory)) { CategoryManager.AddCategory(newCategory); } } private async Task DeleteCategory() { // Всплывающее окно для выбора категории для удаления string categoryToDelete = await DisplayActionSheet("Удалить категорию", "Отмена", null, CategoryManager.Categories.ToArray()); if (!string.IsNullOrEmpty(categoryToDelete) && categoryToDelete != "Отмена") { // Удаляем категорию CategoryManager.Categories.Remove(categoryToDelete); // Сброс активной категории, если она была удалена if (CategoryManager.ActiveCategory == categoryToDelete) { CategoryManager.ActiveCategory = "Все категории"; } } } } }