progress
This commit is contained in:
@@ -20,20 +20,23 @@ namespace JiraTimeBot.Ui
|
|||||||
protected override void OnStartup(StartupEventArgs e)
|
protected override void OnStartup(StartupEventArgs e)
|
||||||
{
|
{
|
||||||
var builder = new ContainerBuilder();
|
var builder = new ContainerBuilder();
|
||||||
builder.Register(c => new MainWindow())
|
|
||||||
.SingleInstance();
|
|
||||||
|
|
||||||
builder.Register(c => new ApplicationModel()).SingleInstance();
|
builder.Register<MainWindow>(c =>
|
||||||
builder.Register(c => new SettingsViewModel()).SingleInstance();
|
{
|
||||||
|
var result = new MainWindow();
|
||||||
|
result.DataContext = c.Resolve<ApplicationViewModel>();
|
||||||
|
return result;
|
||||||
|
}).SingleInstance();
|
||||||
|
|
||||||
builder.RegisterType<SettingsPage>().SingleInstance();
|
builder.RegisterType<ApplicationModel>().SingleInstance();
|
||||||
builder.RegisterType<MainPage>().SingleInstance();
|
|
||||||
|
|
||||||
builder.RegisterType<MainViewModel>().SingleInstance();
|
builder.RegisterType<ApplicationViewModel>().SingleInstance();
|
||||||
|
builder.RegisterType<MainPageViewModel>().SingleInstance();
|
||||||
builder.RegisterType<SettingsViewModel>().SingleInstance();
|
builder.RegisterType<SettingsViewModel>().SingleInstance();
|
||||||
|
|
||||||
|
builder.RegisterType<MainPage>().SingleInstance();
|
||||||
builder.RegisterAggregateService<IRegisteredPages>();
|
builder.RegisterType<SettingsPage>().SingleInstance();
|
||||||
|
|
||||||
builder.RegisterAggregateService<IRegisteredViewModels>();
|
builder.RegisterAggregateService<IRegisteredViewModels>();
|
||||||
|
|
||||||
builder.RegisterType<ApplicationNavigator>()
|
builder.RegisterType<ApplicationNavigator>()
|
||||||
@@ -43,13 +46,10 @@ namespace JiraTimeBot.Ui
|
|||||||
_container = builder.Build();
|
_container = builder.Build();
|
||||||
|
|
||||||
var mainWindow = _container.Resolve<MainWindow>();
|
var mainWindow = _container.Resolve<MainWindow>();
|
||||||
|
|
||||||
var nav = _container.Resolve<IApplicationNavigator>();
|
var nav = _container.Resolve<IApplicationNavigator>();
|
||||||
nav.NavigateToMain();
|
|
||||||
|
nav.NavigateToSettings();
|
||||||
//var mainPage = _container.Resolve<MainPage>();
|
mainWindow.Show();
|
||||||
//mainWindow.Navigate(mainPage);
|
|
||||||
mainWindow.ShowDialog();
|
|
||||||
base.OnStartup(e);
|
base.OnStartup(e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,35 +4,30 @@ namespace JiraTimeBot.Ui
|
|||||||
{
|
{
|
||||||
public interface IRegisteredViewModels
|
public interface IRegisteredViewModels
|
||||||
{
|
{
|
||||||
MainViewModel Main { get; set; }
|
|
||||||
SettingsViewModel Settings { get; set; }
|
SettingsViewModel Settings { get; set; }
|
||||||
|
MainPageViewModel MainPage { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
public class ApplicationNavigator : IApplicationNavigator
|
public class ApplicationNavigator : IApplicationNavigator
|
||||||
{
|
{
|
||||||
private readonly MainWindow _mainWindow;
|
private readonly ApplicationViewModel _applicationViewModel;
|
||||||
private readonly IRegisteredPages _pages;
|
|
||||||
private readonly IRegisteredViewModels _viewModels;
|
private readonly IRegisteredViewModels _viewModels;
|
||||||
|
|
||||||
public ApplicationNavigator(MainWindow mainWindow,
|
public ApplicationNavigator(ApplicationViewModel applicationViewModel,
|
||||||
IRegisteredPages pages,
|
|
||||||
IRegisteredViewModels viewModels)
|
IRegisteredViewModels viewModels)
|
||||||
{
|
{
|
||||||
_mainWindow = mainWindow;
|
_applicationViewModel = applicationViewModel;
|
||||||
_pages = pages;
|
|
||||||
_viewModels = viewModels;
|
_viewModels = viewModels;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void NavigateToMain()
|
public void NavigateToMain()
|
||||||
{
|
{
|
||||||
_pages.Main.DataContext = _viewModels.Main;
|
_applicationViewModel.CurrentViewModel = _viewModels.MainPage;
|
||||||
_mainWindow.Navigate(_pages.Main);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void NavigateToSettings()
|
public void NavigateToSettings()
|
||||||
{
|
{
|
||||||
_pages.Settings.DataContext = _viewModels.Settings;
|
_applicationViewModel.CurrentViewModel = _viewModels.Settings;
|
||||||
_mainWindow.Navigate(_pages.Settings);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
namespace JiraTimeBot.Ui
|
|
||||||
{
|
|
||||||
public interface IRegisteredPages
|
|
||||||
{
|
|
||||||
SettingsPage Settings { get; set; }
|
|
||||||
|
|
||||||
MainPage Main { get; set; }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -96,10 +96,10 @@
|
|||||||
<Compile Include="Commands\RelayCommand.cs" />
|
<Compile Include="Commands\RelayCommand.cs" />
|
||||||
<Compile Include="Commands\RelayCommandAsync%27.cs" />
|
<Compile Include="Commands\RelayCommandAsync%27.cs" />
|
||||||
<Compile Include="IApplicationNavigator.cs" />
|
<Compile Include="IApplicationNavigator.cs" />
|
||||||
<Compile Include="IRegisteredPages.cs" />
|
|
||||||
<Compile Include="Models\ApplicationModel.cs" />
|
<Compile Include="Models\ApplicationModel.cs" />
|
||||||
<Compile Include="Properties\Annotations.cs" />
|
<Compile Include="Properties\Annotations.cs" />
|
||||||
<Compile Include="ViewModels\MainViewModel.cs" />
|
<Compile Include="ViewModels\ApplicationViewModel.cs" />
|
||||||
|
<Compile Include="ViewModels\MainPageViewModel.cs" />
|
||||||
<Compile Include="ViewModels\SettingsViewModel.cs" />
|
<Compile Include="ViewModels\SettingsViewModel.cs" />
|
||||||
<Compile Include="ViewModels\ViewModelBase.cs" />
|
<Compile Include="ViewModels\ViewModelBase.cs" />
|
||||||
<Compile Include="Views\MainPage.xaml.cs">
|
<Compile Include="Views\MainPage.xaml.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<IApplicationNavigator> _appNavigator;
|
||||||
|
private ViewModelBase _currentViewModel;
|
||||||
|
|
||||||
|
public ApplicationViewModel(Func<IApplicationNavigator> 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; }
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
namespace JiraTimeBot.Ui.ViewModels
|
||||||
|
{
|
||||||
|
public class MainPageViewModel : ViewModelBase
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -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<IApplicationNavigator> _appNavigator;
|
|
||||||
|
|
||||||
public MainViewModel(Func<IApplicationNavigator> appNavigator)
|
|
||||||
{
|
|
||||||
_appNavigator = appNavigator;
|
|
||||||
|
|
||||||
NavigateToSettings = new RelayCommand(() =>
|
|
||||||
{
|
|
||||||
_appNavigator().NavigateToSettings();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
public RelayCommand NavigateToSettings { get; set; }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
<Page x:Class="JiraTimeBot.Ui.MainPage"
|
<UserControl x:Class="JiraTimeBot.Ui.MainPage"
|
||||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||||
@@ -6,16 +6,14 @@
|
|||||||
xmlns:local="clr-namespace:JiraTimeBot.Ui"
|
xmlns:local="clr-namespace:JiraTimeBot.Ui"
|
||||||
xmlns:viewModels="clr-namespace:JiraTimeBot.Ui.ViewModels"
|
xmlns:viewModels="clr-namespace:JiraTimeBot.Ui.ViewModels"
|
||||||
mc:Ignorable="d"
|
mc:Ignorable="d"
|
||||||
d:DesignHeight="450" d:DesignWidth="800"
|
Height="100"
|
||||||
d:DataContext="{d:DesignInstance viewModels:MainViewModel}"
|
Width="400"
|
||||||
Title="MainPage">
|
d:DataContext="{d:DesignInstance viewModels:MainPageViewModel}" >
|
||||||
|
|
||||||
<Grid>
|
<Grid>
|
||||||
<Grid.RowDefinitions>
|
<Grid.RowDefinitions>
|
||||||
<RowDefinition/>
|
<RowDefinition/>
|
||||||
<RowDefinition/>
|
<RowDefinition/>
|
||||||
</Grid.RowDefinitions>
|
</Grid.RowDefinitions>
|
||||||
<TextBlock Text="Main"></TextBlock>
|
<TextBlock Text="Application"></TextBlock>
|
||||||
<Button Grid.Row="1" Command="{Binding Path=NavigateToSettings}" Content="NavToSettings" />
|
|
||||||
</Grid>
|
</Grid>
|
||||||
</Page>
|
</UserControl>
|
||||||
|
|||||||
@@ -1,24 +1,9 @@
|
|||||||
using System;
|
namespace JiraTimeBot.Ui
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
using System.Windows;
|
|
||||||
using System.Windows.Controls;
|
|
||||||
using System.Windows.Data;
|
|
||||||
using System.Windows.Documents;
|
|
||||||
using System.Windows.Input;
|
|
||||||
using System.Windows.Media;
|
|
||||||
using System.Windows.Media.Imaging;
|
|
||||||
using System.Windows.Navigation;
|
|
||||||
using System.Windows.Shapes;
|
|
||||||
|
|
||||||
namespace JiraTimeBot.Ui
|
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Interaction logic for MainPage.xaml
|
/// Interaction logic for MainPage.xaml
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public partial class MainPage : Page
|
public partial class MainPage
|
||||||
{
|
{
|
||||||
public MainPage()
|
public MainPage()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,11 +1,37 @@
|
|||||||
<NavigationWindow x:Class="JiraTimeBot.Ui.MainWindow"
|
<Window x:Class="JiraTimeBot.Ui.MainWindow"
|
||||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||||
|
xmlns:viewModels="clr-namespace:JiraTimeBot.Ui.ViewModels"
|
||||||
|
xmlns:ui="clr-namespace:JiraTimeBot.Ui"
|
||||||
mc:Ignorable="d"
|
mc:Ignorable="d"
|
||||||
ShowsNavigationUI="False"
|
SizeToContent="WidthAndHeight"
|
||||||
Height="Auto"
|
d:DataContext="{d:DesignInstance viewModels:ApplicationViewModel}"
|
||||||
Width="Auto"
|
Title="ApplicationWindow">
|
||||||
Title="MainWindow">
|
<Window.Resources>
|
||||||
</NavigationWindow>
|
<DataTemplate DataType="{x:Type viewModels:MainPageViewModel}">
|
||||||
|
<ui:MainPage/>
|
||||||
|
</DataTemplate>
|
||||||
|
<DataTemplate DataType="{x:Type viewModels:SettingsViewModel}">
|
||||||
|
<ui:SettingsPage/>
|
||||||
|
</DataTemplate>
|
||||||
|
</Window.Resources>
|
||||||
|
<Grid>
|
||||||
|
<Grid.RowDefinitions>
|
||||||
|
<RowDefinition />
|
||||||
|
<RowDefinition />
|
||||||
|
</Grid.RowDefinitions>
|
||||||
|
<Grid.ColumnDefinitions>
|
||||||
|
<ColumnDefinition />
|
||||||
|
<ColumnDefinition />
|
||||||
|
</Grid.ColumnDefinitions>
|
||||||
|
<Button Grid.Row="0" Grid.Column="0"
|
||||||
|
Content="NavToMain" Command="{Binding Path=NavigateToMain}" />
|
||||||
|
<Button Grid.Row="0" Grid.Column="1"
|
||||||
|
Content="NavToSettings" Command="{Binding Path=NavigateToSettings}" />
|
||||||
|
<ContentControl Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="2"
|
||||||
|
Content="{Binding Path=CurrentViewModel}" />
|
||||||
|
</Grid>
|
||||||
|
|
||||||
|
</Window>
|
||||||
|
|||||||
@@ -5,6 +5,8 @@
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public partial class MainWindow
|
public partial class MainWindow
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
public MainWindow()
|
public MainWindow()
|
||||||
{
|
{
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
|
|||||||
@@ -5,7 +5,8 @@
|
|||||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||||
xmlns:local="clr-namespace:JiraTimeBot.Ui"
|
xmlns:local="clr-namespace:JiraTimeBot.Ui"
|
||||||
mc:Ignorable="d"
|
mc:Ignorable="d"
|
||||||
d:DesignHeight="450" d:DesignWidth="800">
|
Width="100"
|
||||||
|
Height="200">
|
||||||
<Grid>
|
<Grid>
|
||||||
|
|
||||||
</Grid>
|
</Grid>
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<Page x:Class="JiraTimeBot.Ui.SettingsPage"
|
<UserControl x:Class="JiraTimeBot.Ui.SettingsPage"
|
||||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||||
@@ -6,9 +6,9 @@
|
|||||||
xmlns:local="clr-namespace:JiraTimeBot.Ui"
|
xmlns:local="clr-namespace:JiraTimeBot.Ui"
|
||||||
mc:Ignorable="d"
|
mc:Ignorable="d"
|
||||||
d:DesignHeight="450" d:DesignWidth="800"
|
d:DesignHeight="450" d:DesignWidth="800"
|
||||||
Title="SettingsPage">
|
>
|
||||||
|
|
||||||
<Grid>
|
<Grid>
|
||||||
<TextBlock Text="Settings"></TextBlock>
|
<TextBlock Text="Settings"></TextBlock>
|
||||||
</Grid>
|
</Grid>
|
||||||
</Page>
|
</UserControl>
|
||||||
|
|||||||
@@ -1,11 +1,9 @@
|
|||||||
using System.Windows.Controls;
|
namespace JiraTimeBot.Ui
|
||||||
|
|
||||||
namespace JiraTimeBot.Ui
|
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Interaction logic for SettingsPage.xaml
|
/// Interaction logic for SettingsPage.xaml
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public partial class SettingsPage : Page
|
public partial class SettingsPage
|
||||||
{
|
{
|
||||||
public SettingsPage()
|
public SettingsPage()
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user