@@ -22,15 +22,18 @@ public class MainViewModel : Screen
2222 //private List<Button> leftBarBtns;
2323 private List < Object > Pages ;
2424 private readonly IThemeService _themeService ;
25- private IWindowManager windowManager ;
25+ private readonly IPageService pageService ;
2626 public ObservableCollection < SideBarBtnModel > sideBarBtns { get ; set ; }
27- public MainViewModel ( IWindowManager _windowManager , IThemeService themeService )
27+ public MainViewModel ( IThemeService themeService , IPageService _pageService )
2828 {
2929 _themeService = themeService ;
30- windowManager = _windowManager ;
3130 _themeService . ThemeChanged += ThemeChanged ;
3231 _themeService . IsLightTheme = false ;
3332
33+ pageService = _pageService ;
34+ pageService . PageChanged += PageChanged ;
35+ pageService . PageRemoteChanged += PageRemoteChanged ;
36+
3437 sideBarBtns = new ObservableCollection < SideBarBtnModel > ( ) ;
3538
3639 // there should be some kind of condition here
@@ -41,9 +44,14 @@ public MainViewModel(IWindowManager _windowManager, IThemeService themeService)
4144 sideBarBtns [ 0 ] . background = _themeService . IsLightTheme ? ColorCon . Convert ( "#FCFCFC" ) : ColorCon . Convert ( "#36393F" ) ;
4245
4346
44- Pages = new List < Object > ( ) { new HomeViewModel ( themeService ) , new AddViewModel ( themeService ) , new FavViewModel ( themeService ) , new SettingViewModel ( _themeService ) } ;
45- currentPage = Pages [ 0 ] ;
47+ Pages = new List < Object > ( ) { new HomeViewModel ( themeService , pageService ) ,
48+ new AddViewModel ( themeService , pageService ) ,
49+ new FavViewModel ( themeService ) ,
50+ new SettingViewModel ( _themeService ) } ;
51+ AllViews . Pages = Pages ;
52+ pageService . Page = Pages [ 0 ] ;
4653 }
54+
4755 private void ThemeChanged ( object sender , EventArgs e )
4856 {
4957
@@ -59,6 +67,17 @@ private void ThemeChanged(object sender, EventArgs e)
5967 titlebarBtnsHoverColor = _themeService . IsLightTheme ? ColorCon . Convert ( "#D0D1D2" ) : ColorCon . Convert ( "#373737" ) ;
6068 }
6169
70+ private void PageChanged ( object sender , EventArgs e )
71+ {
72+ currentPage = pageService . Page ;
73+ }
74+
75+ private void PageRemoteChanged ( object sender , EventArgs e )
76+ {
77+ var page = sender as string ;
78+ ChangePageCommand ( page ) ;
79+ }
80+
6281 private Object _currentPage ;
6382 public Object currentPage
6483 {
@@ -75,7 +94,7 @@ public void ChangePageCommand(string selected_item)
7594 else ind = sideBarBtns . IndexOf ( btn ) ;
7695 }
7796 sideBarBtns [ ind ] . background = _themeService . IsLightTheme ? ColorCon . Convert ( "#FCFCFC" ) : ColorCon . Convert ( "#36393F" ) ;
78- if ( currentPage != Pages [ ind ] ) currentPage = Pages [ ind ] ;
97+ if ( currentPage != Pages [ ind ] ) pageService . Page = Pages [ ind ] ;
7998 }
8099
81100 private SolidColorBrush _backgroundColor ;
0 commit comments