NoteMAUI/AppShell.xaml.cs

74 lines
3.5 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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 = "Все категории";
}
}
}
}
}