Files
modernkeepass/ModernKeePass10/Views/SettingsPage10.xaml.cs
Geoffroy BONNEVILLE 56d93a5187 Moved application code to the Application layer
Imported Win10 project
Code cleanup
WIP - Use common UWP services for Win8.1 and Win10
2020-04-06 20:20:45 +02:00

67 lines
2.2 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.ApplicationModel.Core;
using ModernKeePass.ViewModels;
using ModernKeePass.Views.SettingsPageFrames;
namespace ModernKeePass.Views
{
public partial class SettingsPage10
{
private SettingsViewModel ViewModel { get; }
private readonly IList<(string Tag, Type Page)> _pages = new List<(string Tag, Type Page)>
{
("welcome", typeof(SettingsWelcomePage)),
("new", typeof(SettingsNewDatabasePage)),
("save", typeof(SettingsSavePage)),
("general", typeof(SettingsDatabasePage)),
("security", typeof(SettingsSecurityPage))
};
public SettingsPage10()
{
InitializeComponent();
ViewModel = new SettingsViewModel();
SetTitleBar();
}
private void SetTitleBar()
{
var coreTitleBar = CoreApplication.GetCurrentView().TitleBar;
coreTitleBar.ExtendViewIntoTitleBar = true;
Window.Current.SetTitleBar(AppTitleBar);
}
private void NavigationView_OnItemInvoked(NavigationView sender, NavigationViewItemInvokedEventArgs args)
{
// Getting the Tag from Content (args.InvokedItem is the content of NavigationViewItem)
var navItem = NavigationView.MenuItems
.OfType<NavigationViewItem>()
.First(i => args.InvokedItem.Equals(i.Content));
NavigationView_Navigate(navItem);
}
private void NavigationView_Navigate(NavigationViewItem navItem)
{
var item = _pages.First(p => p.Tag.Equals(navItem.Tag));
NavigationView.Header = navItem.Content;
ContentFrame.Navigate(item.Page);
}
private void NavigationView_OnLoaded(object sender, RoutedEventArgs e)
{
NavigationView_Navigate(Welcome);
NavigationView.IsBackEnabled = Frame.CanGoBack;
}
private void NavigationView_OnBackRequested(NavigationView sender, NavigationViewBackRequestedEventArgs args)
{
Frame.GoBack();
}
}
}