Пример #1
0
        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;
                }
            });
Пример #2
0
        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;
                }
            });