diff --git a/Tracker.Frontend.Uno/Presentation/ModulesNavigationPage.cs b/Tracker.Frontend.Uno/Presentation/ModulesNavigationPage.cs index 7aa7907..4cf639a 100644 --- a/Tracker.Frontend.Uno/Presentation/ModulesNavigationPage.cs +++ b/Tracker.Frontend.Uno/Presentation/ModulesNavigationPage.cs @@ -5,13 +5,16 @@ namespace Tracker.Frontend.Uno.Presentation; public sealed partial class ModulesNavigationPage : Page { - public static readonly List Modules = new() + private readonly List modules = new() { new TrackerModule(TrackerModule.Module.BUDGET), new TrackerModule(TrackerModule.Module.DINING), new TrackerModule(TrackerModule.Module.TIME), }; + private TrackerModule.Module activeModule; + private Dictionary contentGrids = new(); + public ModulesNavigationPage() { DataContext ??= (Application.Current as App).Host.Services.GetRequiredService(); @@ -20,6 +23,8 @@ public ModulesNavigationPage() BuildContent((ModulesNavigationViewModel) DataContext)); } + #region UI + private Grid BuildContent(ModulesNavigationViewModel viewModel) { var grid = new Grid(); @@ -59,7 +64,7 @@ private ListView BuildNavigationListView(ModulesNavigationViewModel viewModel) { var view = new ListView(); - var options = Modules.Select(module => + var options = modules.Select(module => { var item = new TextBlock() { @@ -75,18 +80,12 @@ private ListView BuildNavigationListView(ModulesNavigationViewModel viewModel) return item; }); - view.SelectionChanged += (sender, args) => ListViewOnSelectionChanged(sender, args, viewModel); + view.SelectionChanged += ListViewOnSelectionChanged; view.ItemsSource = options; return view; } - private void ListViewOnSelectionChanged( - object sender, SelectionChangedEventArgs e, ModulesNavigationViewModel viewModel) - { - viewModel.ListViewOnSelectionChanged(sender, e); - } - private Grid BuildContentGrid(ModulesNavigationViewModel viewModel) { var grid = new Grid @@ -96,7 +95,7 @@ private Grid BuildContentGrid(ModulesNavigationViewModel viewModel) Dictionary contentGrids = new(); - foreach (TrackerModule module in Modules) + foreach (TrackerModule module in modules) { var contentGrid = new Grid { @@ -110,8 +109,42 @@ private Grid BuildContentGrid(ModulesNavigationViewModel viewModel) grid.Children.Add(contentGrid); } - viewModel.SetContentGridsDictionary(contentGrids); + SetContentGridsDictionary(contentGrids); return grid; } + + #endregion + + #region Logic + + private void SetContentGridsDictionary(Dictionary contentGrids) + { + this.contentGrids = contentGrids; + SetActiveModule(modules[0].TypeModule); + } + + private void SetActiveModule(TrackerModule.Module module) + { + activeModule = module; + + foreach (var grid in contentGrids) + { + grid.Value.Visibility = Visibility.Collapsed; + } + + contentGrids[activeModule].Visibility = Visibility.Visible; + + Console.WriteLine($"Collapsed all grids except {activeModule}"); + } + + private void ListViewOnSelectionChanged(object sender, SelectionChangedEventArgs e) + { + var listView = (ListView) sender; + TrackerModule trackerModule = modules[listView.SelectedIndex]; + + SetActiveModule(trackerModule.TypeModule); + } + + #endregion } diff --git a/Tracker.Frontend.Uno/Presentation/ModulesNavigationViewModel.cs b/Tracker.Frontend.Uno/Presentation/ModulesNavigationViewModel.cs index b7bc1cc..8e4b541 100644 --- a/Tracker.Frontend.Uno/Presentation/ModulesNavigationViewModel.cs +++ b/Tracker.Frontend.Uno/Presentation/ModulesNavigationViewModel.cs @@ -5,53 +5,10 @@ namespace Tracker.Frontend.Uno.Presentation; public partial class ModulesNavigationViewModel : ObservableObject { - //private readonly INavigator _navigator; - - [ObservableProperty] private TrackerModule.Module activeModule; - private Dictionary contentGrids = new(); - public ModulesNavigationViewModel() { - //_navigator = navigator; Title = "Tracker"; } public string? Title { get; } - - public void ListViewOnSelectionChanged(object sender, SelectionChangedEventArgs e) - { - var listView = (ListView) sender; - TrackerModule trackerModule = ModulesNavigationPage.Modules[listView.SelectedIndex]; - - SetActiveModule(trackerModule.TypeModule); - } - - public void SetContentGridsDictionary(Dictionary contentGrids) - { - this.contentGrids = contentGrids; - SetActiveModule(ModulesNavigationPage.Modules[0].TypeModule); - } - - private void SetActiveModule(TrackerModule.Module module) - { - ActiveModule = module; - - foreach (var grid in contentGrids) - { - grid.Value.Visibility = Visibility.Collapsed; - } - - contentGrids[ActiveModule].Visibility = Visibility.Visible; - - Console.WriteLine($"Collapsed all grids except {ActiveModule}"); - - //BudgetModuleVisibility = - // ActiveModule == TrackerModule.Module.BUDGET ? Visibility.Visible : Visibility.Collapsed; - //DiningModuleVisibility = - // ActiveModule == TrackerModule.Module.DINING ? Visibility.Visible : Visibility.Collapsed; - //TimeModuleVisibility = ActiveModule == TrackerModule.Module.TIME ? Visibility.Visible : Visibility.Collapsed; - - //Console.WriteLine( - // $"Budget: {BudgetModuleVisibility}; Dining: {DiningModuleVisibility}; Time: {TimeModuleVisibility}"); - } }