public NavBarViewModel(TargettedNavigationStack mainScreen, WalletManagerViewModel walletManager) { _walletManager = walletManager; _topItems = new ObservableCollection <NavBarItemViewModel>(); _bottomItems = new ObservableCollection <NavBarItemViewModel>(); mainScreen.WhenAnyValue(x => x.CurrentPage) .OfType <NavBarItemViewModel>() .Subscribe(x => CurrentPageChanged(x, walletManager)); this.WhenAnyValue(x => x.SelectedItem) .OfType <NavBarItemViewModel>() .Subscribe(NavigateItem); this.WhenAnyValue(x => x.Items.Count) .Subscribe(x => { if (x > 0 && SelectedItem is null) { SelectedItem = Items.FirstOrDefault(); } }); this.WhenAnyValue(x => x.IsOpen) .Subscribe(x => { if (SelectedItem is { }) { SelectedItem.IsExpanded = x; } });
public NavBarViewModel(TargettedNavigationStack mainScreen) { _topItems = new ObservableCollection <NavBarItemViewModel>(); _bottomItems = new ObservableCollection <NavBarItemViewModel>(); mainScreen.WhenAnyValue(x => x.CurrentPage) .OfType <NavBarItemViewModel>() .DistinctUntilChanged() .Subscribe(x => CurrentPageChanged(x)); this.WhenAnyValue(x => x.SelectedItem) .Subscribe(selectedItem => { if (selectedItem is { }) { NavigateItem(selectedItem); } if (selectedItem is WalletViewModelBase wallet) { Services.UiConfig.LastSelectedWallet = wallet.WalletName; } });