mirror of
https://github.com/KeyKeeperApp/KeyKeeper.git
synced 2026-04-17 18:16:28 +03:00
create viewmodels for RepositoryWindow that can be swapped when locking/unlocking
This commit is contained in:
@@ -1,49 +1,60 @@
|
||||
<Window xmlns="https://github.com/avaloniaui"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:vm="using:KeyKeeper.ViewModels"
|
||||
x:Class="KeyKeeper.RepositoryWindow"
|
||||
Title="KeyKeeper - Хранилище паролей"
|
||||
Width="800"
|
||||
Height="600"
|
||||
Background="White">
|
||||
Background="White"
|
||||
x:DataType="vm:RepositoryWindowViewModel">
|
||||
|
||||
<Grid>
|
||||
<!-- Синий левый край -->
|
||||
<Border Width="200"
|
||||
Background="Blue"
|
||||
HorizontalAlignment="Left"
|
||||
VerticalAlignment="Stretch"/>
|
||||
<StackPanel Margin="20" HorizontalAlignment="Left">
|
||||
<!-- Надпись KeyKeeper -->
|
||||
<TextBlock Text="KeyKeeper"
|
||||
FontSize="32"
|
||||
FontWeight="Bold"
|
||||
HorizontalAlignment="Left"
|
||||
Margin="0,0,0,20"/>
|
||||
|
||||
<!-- Рамочка -->
|
||||
<Border BorderBrush="Gray"
|
||||
BorderThickness="1"
|
||||
CornerRadius="5"
|
||||
Padding="20"
|
||||
Background="#F5F5F5"
|
||||
HorizontalAlignment="Left">
|
||||
|
||||
<StackPanel HorizontalAlignment="Left">
|
||||
<Button Content="All Passwords"
|
||||
Width="120"
|
||||
Height="30"
|
||||
Foreground="Black"
|
||||
HorizontalAlignment="Left"/>
|
||||
</StackPanel>
|
||||
|
||||
</Border>
|
||||
<!-- Save Passwords -->
|
||||
<Button Content="Save Passwords"
|
||||
Width="120"
|
||||
Height="30"
|
||||
Foreground="White"
|
||||
HorizontalAlignment="Left"
|
||||
Margin="0,20,0,0"/>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
<Window.DataTemplates>
|
||||
<DataTemplate DataType="{x:Type vm:UnlockedRepositoryViewModel}">
|
||||
<Grid>
|
||||
<!-- Синий левый край -->
|
||||
<Border Width="200"
|
||||
Background="Blue"
|
||||
HorizontalAlignment="Left"
|
||||
VerticalAlignment="Stretch"/>
|
||||
<StackPanel Margin="20" HorizontalAlignment="Left">
|
||||
<!-- Надпись KeyKeeper -->
|
||||
<TextBlock Text="KeyKeeper"
|
||||
FontSize="32"
|
||||
FontWeight="Bold"
|
||||
HorizontalAlignment="Left"
|
||||
Margin="0,0,0,20"/>
|
||||
|
||||
<!-- Рамочка -->
|
||||
<Border BorderBrush="Gray"
|
||||
BorderThickness="1"
|
||||
CornerRadius="5"
|
||||
Padding="20"
|
||||
Background="#F5F5F5"
|
||||
HorizontalAlignment="Left">
|
||||
|
||||
<StackPanel HorizontalAlignment="Left">
|
||||
<Button Content="All Passwords"
|
||||
Width="120"
|
||||
Height="30"
|
||||
Foreground="Black"
|
||||
HorizontalAlignment="Left"/>
|
||||
</StackPanel>
|
||||
|
||||
</Border>
|
||||
<!-- Save Passwords -->
|
||||
<Button Content="Save Passwords"
|
||||
Width="120"
|
||||
Height="30"
|
||||
Foreground="White"
|
||||
HorizontalAlignment="Left"
|
||||
Margin="0,20,0,0"/>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</DataTemplate>
|
||||
<DataTemplate DataType="{x:Type vm:LockedRepositoryViewModel}">
|
||||
|
||||
</DataTemplate>
|
||||
</Window.DataTemplates>
|
||||
|
||||
<ContentControl Content="{Binding CurrentPage}"/>
|
||||
</Window>
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
using System;
|
||||
using Avalonia;
|
||||
using Avalonia.Controls;
|
||||
using Avalonia.Markup.Xaml;
|
||||
using KeyKeeper.PasswordStore;
|
||||
using KeyKeeper.PasswordStore.Crypto;
|
||||
|
||||
|
||||
5
src/KeyKeeper/ViewModels/LockedRepositoryViewModel.cs
Normal file
5
src/KeyKeeper/ViewModels/LockedRepositoryViewModel.cs
Normal file
@@ -0,0 +1,5 @@
|
||||
namespace KeyKeeper.ViewModels;
|
||||
|
||||
public class LockedRepositoryViewModel : ViewModelBase
|
||||
{
|
||||
}
|
||||
11
src/KeyKeeper/ViewModels/RepositoryWindowViewModel.cs
Normal file
11
src/KeyKeeper/ViewModels/RepositoryWindowViewModel.cs
Normal file
@@ -0,0 +1,11 @@
|
||||
namespace KeyKeeper.ViewModels;
|
||||
|
||||
public class RepositoryWindowViewModel : ViewModelBase
|
||||
{
|
||||
private object currentPage = new LockedRepositoryViewModel();
|
||||
public object CurrentPage
|
||||
{
|
||||
get => currentPage;
|
||||
set { currentPage = value; OnPropertyChanged(nameof(CurrentPage)); }
|
||||
}
|
||||
}
|
||||
5
src/KeyKeeper/ViewModels/UnlockedRepositoryViewModel.cs
Normal file
5
src/KeyKeeper/ViewModels/UnlockedRepositoryViewModel.cs
Normal file
@@ -0,0 +1,5 @@
|
||||
namespace KeyKeeper.ViewModels;
|
||||
|
||||
public class UnlockedRepositoryViewModel : ViewModelBase
|
||||
{
|
||||
}
|
||||
@@ -84,7 +84,7 @@ namespace KeyKeeper.Views
|
||||
{
|
||||
var repositoryWindow = new RepositoryWindow()
|
||||
{
|
||||
DataContext = this.DataContext,
|
||||
DataContext = new RepositoryWindowViewModel(),
|
||||
PassStore = store,
|
||||
WindowStartupLocation = WindowStartupLocation.CenterScreen
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user