По сути, у меня есть приложение с главным экраном, который состоит из основного пустого экрана, на котором пользователь может отображать другие представления, и боковой панели навигации сбоку. Однако когда я открываю другое представление, которое отображается в основной части экрана, оно также закрывает расширенную часть панели навигации. Причины этого вполне очевидны.
Чтобы это исправить, я решил разделить панель навигации и главный экран на два отдельных представления, чтобы было проще манипулировать иерархией представления, чтобы панель навигации всегда оставалась сверху, над всеми другими отображаемыми представлениями. К моему разочарованию, такой опции, похоже, не существует, поэтому я придумал другую идею - переключить активный вид при нажатии кнопки "открыть меню" и изменить его обратно на текущий при повторном нажатии.Вот как сейчас выглядит вид с боковой панелью навигации:
Код: Выделить всё
[*]
Пример для панели навигации:
Код: Выделить всё
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Input;
using ApkaJezykowa.MVVM.ViewModel;
namespace ApkaJezykowa.Commands
{
internal class UpdateViewCommand : ICommand
{
private MainViewModel viewModel;
public UpdateViewCommand(MainViewModel viewModel)
{
this.viewModel = viewModel;
}
public event EventHandler CanExecuteChanged;
public bool CanExecute(object parameter)
{
return true;
}
public void Execute(object parameter)
{
if(parameter.ToString() == "Lessons")
{
viewModel.SelectedViewModel = new LessonsViewModel();
}
if (parameter.ToString() == "Dictionary")
{
viewModel.SelectedViewModel = new DictionaryViewModel();
}
if (parameter.ToString() == "Info")
{
viewModel.SelectedViewModel = new InfoViewModel();
}
if (parameter.ToString() == "Settings")
{
viewModel.SelectedViewModel = new SettingsViewModel();
}
if(parameter.ToString() == "Editor")
{
viewModel.SelectedViewModel = new LessonEditorViewModel();
}
}
}
}
Итак, в настоящее время я вижу два-три способа решения всей этой путаницы:
- Либо выяснить, как манипулировать иерархией ViewModels, и сделать так, чтобы навигация всегда выбиралась с помощью какого-то параметра (я понятия не имею, как это сделать). для достижения),
- Или полностью переписать систему команд обновления представления на что-то гораздо более гибкое, что также позволило бы мне реализовать идею с динамически выбранными моделями представления и в целом сделать весь код приложения менее запутанным ( который я тоже понятия не имею, как реализовать),
- Полный редизайн всей боковой панели навигации, поскольку я предполагаю, что текущий дизайн также может быть несовершенным.
Подробнее здесь: https://stackoverflow.com/questions/791 ... m-figuring
Мобильная версия