Skip to content

Commit

Permalink
chore: continues trying to get navigation to work
Browse files Browse the repository at this point in the history
  • Loading branch information
andr9528 committed Dec 6, 2024
1 parent 1f2e9b2 commit e71f673
Show file tree
Hide file tree
Showing 2 changed files with 38 additions and 30 deletions.
60 changes: 35 additions & 25 deletions Tracker.Frontend.Uno/Presentation/ModulesNavigationPage.cs
Original file line number Diff line number Diff line change
Expand Up @@ -14,25 +14,34 @@ public sealed partial class ModulesNavigationPage : Page

public ModulesNavigationPage()
{
this.DataContext<ModulesNavigationViewModel>((page, vm) =>
page.NavigationCacheMode(NavigationCacheMode.Required).Background(Theme.Brushes.Background.Default)
.Content(BuildContent(vm)));
var viewModel = new ModulesNavigationViewModel();

this.DataContext(viewModel,
(page, vm) => page.NavigationCacheMode(NavigationCacheMode.Required)
.Background(Theme.Brushes.Background.Default).Content(BuildContent(vm)));
}

private Grid BuildContent(ModulesNavigationViewModel viewModel)
{
var grid = new Grid();

const int rowOneHeight = 8;
const int rowTwoHeight = 100 - rowOneHeight;
const int columnOneWidth = 10;
const int columnTwoWidth = 100 - columnOneWidth;

grid.SafeArea(SafeArea.InsetMask.VisibleBounds);
grid.RowDefinitions(new GridLength(8, GridUnitType.Star), new GridLength(92, GridUnitType.Star));
grid.ColumnDefinitions(new GridLength(10, GridUnitType.Star), new GridLength(90, GridUnitType.Star));
grid.RowDefinitions(new GridLength(rowOneHeight, GridUnitType.Star),
new GridLength(rowTwoHeight, GridUnitType.Star));
grid.ColumnDefinitions(new GridLength(columnOneWidth, GridUnitType.Star),
new GridLength(columnTwoWidth, GridUnitType.Star));

NavigationBar navBar = BuildNavigationBar(viewModel).Grid(row: 0, column: 0);
ListView navList = BuildNavigationListView(viewModel).Grid(row: 1, column: 0);
NavigationBar navigationBar = BuildNavigationBar(viewModel).Grid(row: 0, column: 0);
ListView navigation = BuildNavigationListView(viewModel).Grid(row: 1, column: 0);
Grid contentGrid = BuildContentGrid(viewModel).Grid(row: 0, column: 1, rowSpan: 2);

grid.Children.Add(navBar);
grid.Children.Add(navList);
grid.Children.Add(navigationBar);
grid.Children.Add(navigation);
grid.Children.Add(contentGrid);

return grid;
Expand All @@ -49,35 +58,36 @@ private NavigationBar BuildNavigationBar(ModulesNavigationViewModel viewModel)

private ListView BuildNavigationListView(ModulesNavigationViewModel viewModel)
{
var listView = new ListView();
//listView.Region(true);
var view = new ListView();

view.Region(true);

var listOptions = Modules.Select(module =>
var options = Modules.Select(module =>
{
var block = new TextBlock()
var item = new TextBlock()
{
Text = module.GetModuleAsReadableString(),
Padding = new Thickness(10, 0, 10, 0),
VerticalAlignment = VerticalAlignment.Stretch,
HorizontalAlignment = HorizontalAlignment.Stretch,
Background = listView.Background,
FocusVisualPrimaryBrush = listView.Background,
FocusVisualSecondaryBrush = listView.Background,
Background = view.Background,
FocusVisualPrimaryBrush = view.Background,
FocusVisualSecondaryBrush = view.Background,
};
//button.Region(name: module.GetModuleAsReadableString());
//button.SetRequest(module.GetModuleAsReadableString());
//button.SetData(module.GetModuleControl());
item.Region(name: module.GetModuleAsReadableString());
//item.SetRequest(module.GetModuleAsReadableString());
//item.SetData(module.GetModuleControl());

//button.Command(() => GetModuleCommand(viewModel, module.TypeModule));
//button.Style(new Style(typeof(TextBlock)));
//item.Command(() => GetModuleCommand(viewModel, module.TypeModule));
//item.Style(new Style(typeof(TextBlock)));

return block;
return item;
});

listView.SelectionChanged += (sender, args) => ListViewOnSelectionChanged(sender, args, viewModel);
listView.ItemsSource = listOptions;
view.SelectionChanged += (sender, args) => ListViewOnSelectionChanged(sender, args, viewModel);
view.ItemsSource = options;

return listView;
return view;
}

private void ListViewOnSelectionChanged(
Expand Down
Original file line number Diff line number Diff line change
@@ -1,21 +1,19 @@
using Tracker.Module.Budget.Presentation.ViewModel;
using Uno.Extensions.Equality;

namespace Tracker.Frontend.Uno.Presentation;

public partial class ModulesNavigationViewModel : ObservableObject
{
private readonly INavigator _navigator;
//private readonly INavigator _navigator;

[ObservableProperty] private TrackerModule.Module activeModule;

[ObservableProperty] private Visibility budgetModuleVisibility;
[ObservableProperty] private Visibility diningModuleVisibility;
[ObservableProperty] private Visibility timeModuleVisibility;

public ModulesNavigationViewModel(IOptions<AppConfig> appInfo, INavigator navigator)
public ModulesNavigationViewModel()
{
_navigator = navigator;
//_navigator = navigator;
Title = "Tracker";

SetActiveModule(ModulesNavigationPage.Modules[0].TypeModule);
Expand Down

0 comments on commit e71f673

Please sign in to comment.