Major changes in MainPage: now is layout dependant (with a base, to prepare for Settings)

Main sub pages also changed to better work with Main (but needs improvement)
Added a Settings Page stub
This commit is contained in:
2017-10-26 18:57:39 +02:00
committed by BONNEVILLE Geoffroy
parent 1b439a4960
commit d10f617910
26 changed files with 833 additions and 67 deletions

View File

@@ -1,34 +1,56 @@
using Windows.UI.Xaml.Controls;
using System;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Navigation;
using ModernKeePass.Pages;
using ModernKeePass.ViewModels;
// The Blank Page item template is documented at http://go.microsoft.com/fwlink/?LinkId=234238
namespace ModernKeePass
namespace ModernKeePass.Pages
{
/// <summary>
/// An empty page that can be used on its own or navigated to within a Frame.
/// </summary>
public sealed partial class MainPage
{
public MainVm Model => (MainVm)DataContext;
public new MainVm Model => (MainVm)DataContext;
public MainPage()
{
InitializeComponent();
ListView = MenuListView;
ListViewSource = MenuItemsSource;
}
private void MenuListView_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
ListView_SelectionChanged(sender, e);
var selectedItem = Model.SelectedItem as MainMenuItemVm;
selectedItem?.Destination.Navigate(selectedItem.PageType, selectedItem.Parameter);
}
#region NavigationHelper registration
/// The methods provided in this section are simply used to allow
/// NavigationHelper to respond to the page's navigation methods.
///
/// Page specific logic should be placed in event handlers for the
/// <see cref="Common.NavigationHelper.LoadState"/>
/// and <see cref="Common.NavigationHelper.SaveState"/>.
/// The navigation parameter is available in the LoadState method
/// in addition to page state preserved during an earlier session.
protected override void OnNavigatedTo(NavigationEventArgs e)
{
base.OnNavigatedTo(e);
NavigationHelper.OnNavigatedTo(e);
DataContext = new MainVm(Frame, MenuFrame);
if (Model.SelectedItem == null) MenuFrame.Navigate(typeof(WelcomePage));
}
private void ListView_SelectionChanged(object sender, SelectionChangedEventArgs e)
protected override void OnNavigatedFrom(NavigationEventArgs e)
{
Model.SelectedItem?.Destination.Navigate(Model.SelectedItem.PageType, Model.SelectedItem.Parameter);
NavigationHelper.OnNavigatedFrom(e);
}
#endregion
}
}