diff --git a/src/JiraTimeBot.Ui/App.xaml.cs b/src/JiraTimeBot.Ui/App.xaml.cs index 1eb0115..cafa44d 100644 --- a/src/JiraTimeBot.Ui/App.xaml.cs +++ b/src/JiraTimeBot.Ui/App.xaml.cs @@ -20,20 +20,23 @@ namespace JiraTimeBot.Ui protected override void OnStartup(StartupEventArgs e) { var builder = new ContainerBuilder(); - builder.Register(c => new MainWindow()) - .SingleInstance(); - builder.Register(c => new ApplicationModel()).SingleInstance(); - builder.Register(c => new SettingsViewModel()).SingleInstance(); + builder.Register(c => + { + var result = new MainWindow(); + result.DataContext = c.Resolve(); + return result; + }).SingleInstance(); - builder.RegisterType().SingleInstance(); - builder.RegisterType().SingleInstance(); + builder.RegisterType().SingleInstance(); - builder.RegisterType().SingleInstance(); + builder.RegisterType().SingleInstance(); + builder.RegisterType().SingleInstance(); builder.RegisterType().SingleInstance(); - - - builder.RegisterAggregateService(); + + builder.RegisterType().SingleInstance(); + builder.RegisterType().SingleInstance(); + builder.RegisterAggregateService(); builder.RegisterType() @@ -43,13 +46,10 @@ namespace JiraTimeBot.Ui _container = builder.Build(); var mainWindow = _container.Resolve(); - var nav = _container.Resolve(); - nav.NavigateToMain(); - - //var mainPage = _container.Resolve(); - //mainWindow.Navigate(mainPage); - mainWindow.ShowDialog(); + + nav.NavigateToSettings(); + mainWindow.Show(); base.OnStartup(e); } } diff --git a/src/JiraTimeBot.Ui/ApplicationNavigator.cs b/src/JiraTimeBot.Ui/ApplicationNavigator.cs index 2cdf01a..b350eee 100644 --- a/src/JiraTimeBot.Ui/ApplicationNavigator.cs +++ b/src/JiraTimeBot.Ui/ApplicationNavigator.cs @@ -4,35 +4,30 @@ namespace JiraTimeBot.Ui { public interface IRegisteredViewModels { - MainViewModel Main { get; set; } SettingsViewModel Settings { get; set; } + MainPageViewModel MainPage { get; set; } } public class ApplicationNavigator : IApplicationNavigator { - private readonly MainWindow _mainWindow; - private readonly IRegisteredPages _pages; + private readonly ApplicationViewModel _applicationViewModel; private readonly IRegisteredViewModels _viewModels; - public ApplicationNavigator(MainWindow mainWindow, - IRegisteredPages pages, + public ApplicationNavigator(ApplicationViewModel applicationViewModel, IRegisteredViewModels viewModels) { - _mainWindow = mainWindow; - _pages = pages; + _applicationViewModel = applicationViewModel; _viewModels = viewModels; } public void NavigateToMain() { - _pages.Main.DataContext = _viewModels.Main; - _mainWindow.Navigate(_pages.Main); + _applicationViewModel.CurrentViewModel = _viewModels.MainPage; } public void NavigateToSettings() { - _pages.Settings.DataContext = _viewModels.Settings; - _mainWindow.Navigate(_pages.Settings); + _applicationViewModel.CurrentViewModel = _viewModels.Settings; } } } \ No newline at end of file diff --git a/src/JiraTimeBot.Ui/IRegisteredPages.cs b/src/JiraTimeBot.Ui/IRegisteredPages.cs deleted file mode 100644 index 8d2d6cd..0000000 --- a/src/JiraTimeBot.Ui/IRegisteredPages.cs +++ /dev/null @@ -1,9 +0,0 @@ -namespace JiraTimeBot.Ui -{ - public interface IRegisteredPages - { - SettingsPage Settings { get; set; } - - MainPage Main { get; set; } - } -} \ No newline at end of file diff --git a/src/JiraTimeBot.Ui/JiraTimeBot.Ui.csproj b/src/JiraTimeBot.Ui/JiraTimeBot.Ui.csproj index 0dc509f..952b4e3 100644 --- a/src/JiraTimeBot.Ui/JiraTimeBot.Ui.csproj +++ b/src/JiraTimeBot.Ui/JiraTimeBot.Ui.csproj @@ -96,10 +96,10 @@ - - + + diff --git a/src/JiraTimeBot.Ui/ViewModels/ApplicationViewModel.cs b/src/JiraTimeBot.Ui/ViewModels/ApplicationViewModel.cs new file mode 100644 index 0000000..df71410 --- /dev/null +++ b/src/JiraTimeBot.Ui/ViewModels/ApplicationViewModel.cs @@ -0,0 +1,40 @@ +using Aeroclub.CL.ASIA.Application.UI.Wpf.Commands; +using System; + +namespace JiraTimeBot.Ui.ViewModels +{ + public class ApplicationViewModel : ViewModelBase + { + private readonly Func _appNavigator; + private ViewModelBase _currentViewModel; + + public ApplicationViewModel(Func appNavigator) + { + _appNavigator = appNavigator; + + NavigateToSettings = new RelayCommand(() => + { + _appNavigator().NavigateToSettings(); + }); + + NavigateToMain = new RelayCommand(() => + { + _appNavigator().NavigateToMain(); + }); + } + + public ViewModelBase CurrentViewModel + { + get => _currentViewModel; + set + { + _currentViewModel = value; + OnPropertyChanged(); + } + } + + public RelayCommand NavigateToSettings { get; set; } + + public RelayCommand NavigateToMain { get; set; } + } +} \ No newline at end of file diff --git a/src/JiraTimeBot.Ui/ViewModels/MainPageViewModel.cs b/src/JiraTimeBot.Ui/ViewModels/MainPageViewModel.cs new file mode 100644 index 0000000..e89dcaf --- /dev/null +++ b/src/JiraTimeBot.Ui/ViewModels/MainPageViewModel.cs @@ -0,0 +1,7 @@ +namespace JiraTimeBot.Ui.ViewModels +{ + public class MainPageViewModel : ViewModelBase + { + + } +} \ No newline at end of file diff --git a/src/JiraTimeBot.Ui/ViewModels/MainViewModel.cs b/src/JiraTimeBot.Ui/ViewModels/MainViewModel.cs deleted file mode 100644 index 2e7b7c0..0000000 --- a/src/JiraTimeBot.Ui/ViewModels/MainViewModel.cs +++ /dev/null @@ -1,22 +0,0 @@ -using Aeroclub.CL.ASIA.Application.UI.Wpf.Commands; -using System; - -namespace JiraTimeBot.Ui.ViewModels -{ - public class MainViewModel : ViewModelBase - { - private readonly Func _appNavigator; - - public MainViewModel(Func appNavigator) - { - _appNavigator = appNavigator; - - NavigateToSettings = new RelayCommand(() => - { - _appNavigator().NavigateToSettings(); - }); - } - - public RelayCommand NavigateToSettings { get; set; } - } -} \ No newline at end of file diff --git a/src/JiraTimeBot.Ui/Views/MainPage.xaml b/src/JiraTimeBot.Ui/Views/MainPage.xaml index 13636d2..ec1c23c 100644 --- a/src/JiraTimeBot.Ui/Views/MainPage.xaml +++ b/src/JiraTimeBot.Ui/Views/MainPage.xaml @@ -1,4 +1,4 @@ - - + Height="100" + Width="400" + d:DataContext="{d:DesignInstance viewModels:MainPageViewModel}" > - -