mirror of
https://github.com/wismna/ModernKeePass.git
synced 2025-10-03 23:50:18 -04:00
WIP on data binding, nothing is working...
This commit is contained in:
99
ModernKeePass/Pages/DatabaseDetailPage.xaml
Normal file
99
ModernKeePass/Pages/DatabaseDetailPage.xaml
Normal file
@@ -0,0 +1,99 @@
|
||||
<Page
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:local="using:ModernKeePass.Pages"
|
||||
xmlns:common="using:ModernKeePass.Common"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:ViewModels="using:ModernKeePass.ViewModels"
|
||||
x:Name="pageRoot"
|
||||
x:Class="ModernKeePass.Pages.DatabaseDetailPage"
|
||||
DataContext="{Binding ViewModel, RelativeSource={RelativeSource Self}}"
|
||||
mc:Ignorable="d">
|
||||
<!--<Page.DataContext>
|
||||
<ViewModels:DatabaseVm />
|
||||
</Page.DataContext>-->
|
||||
<Page.Resources>
|
||||
<!-- Collection of items displayed by this page -->
|
||||
<CollectionViewSource
|
||||
x:Name="itemsViewSource"
|
||||
Source="{Binding Groups}"/>
|
||||
</Page.Resources>
|
||||
|
||||
<Grid>
|
||||
<Grid.DataContext>
|
||||
<ViewModels:DatabaseVm/>
|
||||
</Grid.DataContext>
|
||||
<Grid.ChildrenTransitions>
|
||||
<TransitionCollection>
|
||||
<EntranceThemeTransition/>
|
||||
</TransitionCollection>
|
||||
</Grid.ChildrenTransitions>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="140"/>
|
||||
<RowDefinition Height="*"/>
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<!-- Horizontal scrolling grid -->
|
||||
<GridView
|
||||
x:Name="itemGridView"
|
||||
AutomationProperties.AutomationId="ItemGridView"
|
||||
AutomationProperties.Name="Groups"
|
||||
TabIndex="1"
|
||||
Grid.RowSpan="2"
|
||||
Padding="120,126,120,50"
|
||||
ItemsSource="{Binding Source={StaticResource itemsViewSource}}"
|
||||
SelectionMode="None"
|
||||
IsSwipeEnabled="false">
|
||||
<GridView.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<Grid Height="110" Width="480" Margin="10">
|
||||
<Grid.DataContext>
|
||||
<ViewModels:GroupVm/>
|
||||
</Grid.DataContext>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Border Background="{ThemeResource ListViewItemPlaceholderBackgroundThemeBrush}" Width="110" Height="110">
|
||||
<Image Stretch="UniformToFill" AutomationProperties.Name="{Binding Title}"/>
|
||||
</Border>
|
||||
<StackPanel Grid.Column="1" VerticalAlignment="Top" Margin="10,0,0,0">
|
||||
<TextBlock Style="{StaticResource TitleTextBlockStyle}" TextWrapping="NoWrap" Text="{Binding Name}"/>
|
||||
<TextBlock Style="{StaticResource CaptionTextBlockStyle}" TextWrapping="NoWrap"/>
|
||||
<TextBlock Style="{StaticResource BodyTextBlockStyle}" MaxHeight="60"/>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</DataTemplate>
|
||||
</GridView.ItemTemplate>
|
||||
<GridView.Header>
|
||||
<StackPanel Width="480" Margin="0,4,14,0">
|
||||
<TextBlock Margin="0,0,0,20" Style="{StaticResource SubheaderTextBlockStyle}" MaxHeight="60"/>
|
||||
<Image Height="400" Margin="0,0,0,20" Stretch="UniformToFill" AutomationProperties.Name="{Binding Title}"/>
|
||||
<TextBlock Margin="0,0,0,0" Style="{StaticResource BodyTextBlockStyle}"/>
|
||||
</StackPanel>
|
||||
</GridView.Header>
|
||||
<GridView.ItemContainerStyle>
|
||||
<Style TargetType="FrameworkElement">
|
||||
<Setter Property="Margin" Value="52,0,0,2"/>
|
||||
</Style>
|
||||
</GridView.ItemContainerStyle>
|
||||
</GridView>
|
||||
|
||||
<!-- Back button and page title -->
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="120"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Button x:Name="backButton" Margin="39,59,39,0" Command="{Binding NavigationHelper.GoBackCommand, ElementName=pageRoot}"
|
||||
Style="{StaticResource NavigationBackButtonNormalStyle}"
|
||||
VerticalAlignment="Top"
|
||||
AutomationProperties.Name="Back"
|
||||
AutomationProperties.AutomationId="BackButton"
|
||||
AutomationProperties.ItemType="Navigation Button"/>
|
||||
<TextBlock x:Name="pageTitle" Text="{Binding Name}" Style="{StaticResource HeaderTextBlockStyle}" Grid.Column="1"
|
||||
IsHitTestVisible="false" TextWrapping="NoWrap" VerticalAlignment="Bottom" Margin="0,0,30,40"/>
|
||||
</Grid>
|
||||
</Grid>
|
||||
</Page>
|
@@ -1,33 +1,25 @@
|
||||
using ModernKeePass.Common;
|
||||
using ModernKeePassLib;
|
||||
using ModernKeePassLib.Interfaces;
|
||||
using ModernKeePassLib.Keys;
|
||||
using ModernKeePassLib.Serialization;
|
||||
using Windows.Storage;
|
||||
using Windows.UI.Xaml.Controls;
|
||||
using Windows.UI.Xaml.Navigation;
|
||||
using System.Linq;
|
||||
using System;
|
||||
using ModernKeePass.ViewModels;
|
||||
using Windows.Storage;
|
||||
|
||||
// The Hub Page item template is documented at http://go.microsoft.com/fwlink/?LinkId=321224
|
||||
// The Group Detail Page item template is documented at http://go.microsoft.com/fwlink/?LinkId=234229
|
||||
|
||||
namespace ModernKeePass.Pages
|
||||
{
|
||||
/// <summary>
|
||||
/// A page that displays a grouped collection of items.
|
||||
/// A page that displays an overview of a single group, including a preview of the items
|
||||
/// within the group.
|
||||
/// </summary>
|
||||
public sealed partial class DatabaseViewPage : Page
|
||||
public sealed partial class DatabaseDetailPage : Page
|
||||
{
|
||||
private NavigationHelper navigationHelper;
|
||||
private ObservableDictionary defaultViewModel = new ObservableDictionary();
|
||||
private PwDatabase _database = new PwDatabase();
|
||||
private DatabaseVm viewModel = new DatabaseVm();
|
||||
|
||||
/// <summary>
|
||||
/// This can be changed to a strongly typed view model.
|
||||
/// </summary>
|
||||
public ObservableDictionary DefaultViewModel
|
||||
public DatabaseVm ViewModel
|
||||
{
|
||||
get { return this.defaultViewModel; }
|
||||
get { return this.viewModel; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -39,14 +31,14 @@ namespace ModernKeePass.Pages
|
||||
get { return this.navigationHelper; }
|
||||
}
|
||||
|
||||
public DatabaseViewPage()
|
||||
|
||||
public DatabaseDetailPage()
|
||||
{
|
||||
this.InitializeComponent();
|
||||
this.navigationHelper = new NavigationHelper(this);
|
||||
this.navigationHelper.LoadState += navigationHelper_LoadState;
|
||||
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Populates the page with content passed during navigation. Any saved state is also
|
||||
/// provided when recreating a page from a prior session.
|
||||
@@ -60,7 +52,8 @@ namespace ModernKeePass.Pages
|
||||
/// session. The state will be null the first time a page is visited.</param>
|
||||
private void navigationHelper_LoadState(object sender, LoadStateEventArgs e)
|
||||
{
|
||||
// TODO: Assign a collection of bindable groups to this.DefaultViewModel["Groups"]
|
||||
// TODO: Assign a bindable group to this.DefaultViewModel["Group"]
|
||||
// TODO: Assign a collection of bindable items to this.DefaultViewModel["Items"]
|
||||
}
|
||||
|
||||
#region NavigationHelper registration
|
||||
@@ -77,21 +70,11 @@ namespace ModernKeePass.Pages
|
||||
protected override void OnNavigatedTo(NavigationEventArgs e)
|
||||
{
|
||||
navigationHelper.OnNavigatedTo(e);
|
||||
|
||||
if (e.Parameter is StorageFile)
|
||||
{
|
||||
var file = e.Parameter as StorageFile;
|
||||
var key = new CompositeKey();
|
||||
key.AddUserKey(new KcpPassword("test"));
|
||||
try
|
||||
{
|
||||
_database.Open(IOConnectionInfo.FromPath(file.Path), key, new NullStatusLogger());
|
||||
|
||||
DefaultViewModel["Groups"] = _database.RootGroup.GetGroups(false).Select(g => g.Name);
|
||||
}
|
||||
finally
|
||||
{
|
||||
_database.Close();
|
||||
}
|
||||
viewModel.Open(file, "test");
|
||||
}
|
||||
}
|
||||
|
@@ -1,127 +0,0 @@
|
||||
<Page
|
||||
x:Name="pageRoot"
|
||||
x:Class="ModernKeePass.Pages.DatabaseViewPage"
|
||||
DataContext="{Binding DefaultViewModel, RelativeSource={RelativeSource Self}}"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:local="using:ModernKeePass.Pages"
|
||||
xmlns:common="using:ModernKeePass.Common"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
mc:Ignorable="d">
|
||||
|
||||
<Page.Resources>
|
||||
<x:String x:Key="ChevronGlyph"></x:String>
|
||||
|
||||
<!-- TODO: Delete this line if the key AppName is declared in App.xaml -->
|
||||
<x:String x:Key="AppName">My Application</x:String>
|
||||
|
||||
</Page.Resources>
|
||||
|
||||
<!--
|
||||
This grid acts as a root panel for the page.
|
||||
-->
|
||||
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
|
||||
<Grid.ChildrenTransitions>
|
||||
<TransitionCollection>
|
||||
<EntranceThemeTransition/>
|
||||
</TransitionCollection>
|
||||
</Grid.ChildrenTransitions>
|
||||
|
||||
<Hub>
|
||||
<Hub.Header>
|
||||
<!-- Back button and page title -->
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="80"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Button x:Name="backButton" Margin="-1,-1,39,0" Command="{Binding NavigationHelper.GoBackCommand, ElementName=pageRoot}"
|
||||
Style="{StaticResource NavigationBackButtonNormalStyle}"
|
||||
VerticalAlignment="Top"
|
||||
AutomationProperties.Name="Back"
|
||||
AutomationProperties.AutomationId="BackButton"
|
||||
AutomationProperties.ItemType="Navigation Button"/>
|
||||
<TextBlock x:Name="pageTitle" Text="{StaticResource AppName}" Style="{StaticResource HeaderTextBlockStyle}" Grid.Column="1"
|
||||
IsHitTestVisible="false" TextWrapping="NoWrap" VerticalAlignment="Top"/>
|
||||
</Grid>
|
||||
</Hub.Header>
|
||||
|
||||
<HubSection Width="780" Margin="0,0,80,0">
|
||||
<HubSection.Background>
|
||||
<ImageBrush Stretch="UniformToFill" />
|
||||
</HubSection.Background>
|
||||
</HubSection>
|
||||
<HubSection Width="500" Header="Section 1">
|
||||
<DataTemplate>
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="*" />
|
||||
</Grid.RowDefinitions>
|
||||
<Image Stretch="Fill" Width="420" Height="280"/>
|
||||
<TextBlock Style="{StaticResource SubheaderTextBlockStyle}" Grid.Row="1" Margin="0,10,0,0" TextWrapping="Wrap"
|
||||
Text="Lorem ipsum dolor sit nonumy sed consectetuer ising elit, sed diam"/>
|
||||
<TextBlock Style="{StaticResource TitleTextBlockStyle}" Grid.Row="2" Margin="0,10,0,0"
|
||||
Text="Description text:"/>
|
||||
<TextBlock Style="{StaticResource BodyTextBlockStyle}" Grid.Row="3"
|
||||
Text="Lorem ipsum dolor sit amet, consectetuer ising elit, sed diam nonummy nibh uismod tincidunt ut laoreet suscipit lobortis ni ut wisi quipexerci quis consequat minim veniam, quis nostrud exerci tation ullam corper. Lorem ipsum dolor sit amet, consectetuer ising elit, sed diam nonummy nibh uismod tincidunt ut laoreet suscipit lobortis ni ut wisi quipexerci quis consequat minim veniam, quis nostrud exerci tation ullam corper. "/>
|
||||
</Grid>
|
||||
</DataTemplate>
|
||||
</HubSection>
|
||||
<HubSection Width="520" Header="Section 2">
|
||||
<DataTemplate>
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="*" />
|
||||
</Grid.RowDefinitions>
|
||||
<TextBlock Style="{StaticResource TitleTextBlockStyle}" Margin="0,0,0,10"
|
||||
Text="Item Title" />
|
||||
<TextBlock Style="{StaticResource SubheaderTextBlockStyle}" Grid.Row="1"
|
||||
Text="Quisque in porta lorem dolor amet sed consectetuer ising elit, sed diam non my nibh uis mod wisi quip."/>
|
||||
<TextBlock Style="{StaticResource SubtitleTextBlockStyle}" Grid.Row="2" Margin="0,20,0,0"
|
||||
Text="Item Sub Title"/>
|
||||
<TextBlock Style="{StaticResource BodyTextBlockStyle}" Grid.Row="3"
|
||||
Text="Lorem ipsum dolor sit amet, consectetuer ising elit, sed diam nonummy nibh uismod tincidunt ut laoreet suscipit lobortis ni ut wisi quipexerci quis consequat minim veniam, quis nostrud exerci tation ullam corper. Lorem ipsum dolor sit amet, consectetuer ising elit, sed diam nonummy nibh uismod tincidunt ut laoreet suscipit lobortis ni ut wisi quipexerci quis consequat minim veniam, quis nostrud exerci tation ullam corper."/>
|
||||
</Grid>
|
||||
</DataTemplate>
|
||||
</HubSection>
|
||||
|
||||
<HubSection Header="Section 3">
|
||||
<DataTemplate>
|
||||
<!-- width of 400 -->
|
||||
<StackPanel Orientation="Vertical">
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="130"/>
|
||||
<ColumnDefinition Width="5"/>
|
||||
<ColumnDefinition Width="130"/>
|
||||
<ColumnDefinition Width="5"/>
|
||||
<ColumnDefinition Width="130"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="270"/>
|
||||
<RowDefinition Height="95"/>
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="*" />
|
||||
</Grid.RowDefinitions>
|
||||
<Image Grid.ColumnSpan="5" Stretch="Fill" Margin="0,0,0,10"/>
|
||||
<Image Grid.Row="1" Stretch="Fill"/>
|
||||
<Image Grid.Row="1" Grid.Column="2" Stretch="Fill"/>
|
||||
<Image Grid.Row="1" Grid.Column="4" Stretch="Fill"/>
|
||||
<TextBlock Style="{StaticResource TitleTextBlockStyle}" Grid.Row="2" Grid.ColumnSpan="5" Margin="0,15,0,0"
|
||||
Text="Description Text:"/>
|
||||
<TextBlock Style="{StaticResource BodyTextBlockStyle}" Grid.Row="3" Grid.ColumnSpan="5"
|
||||
Text="Lorem ipsum dolor sit amet, consectetuer ising elit, sed diam nonummy nibh uismod tincidunt ut laoreet suscipit lobortis ni ut wisi quipexerci quis consequat minim veniam, quis nostrud exerci tation ullam corper. Lorem ipsum dolor sit amet, consectetuer ising elit, sed diam nonummy nibh uismod tincidunt ut laoreet suscipit lobortis ni ut wisi quipexerci quis consequat minim veniam, quis nostrud exerci tation ullam corper."/>
|
||||
</Grid>
|
||||
</StackPanel>
|
||||
</DataTemplate>
|
||||
</HubSection>
|
||||
</Hub>
|
||||
</Grid>
|
||||
</Page>
|
Reference in New Issue
Block a user