From 69ac98b2f6ea40c95c34d31844a118023e75c35d Mon Sep 17 00:00:00 2001 From: Kyle Spearrin Date: Fri, 29 Mar 2019 12:52:57 -0400 Subject: [PATCH] vault groupings page list view stubbed --- src/App/Pages/BaseViewModel.cs | 27 +----- src/App/Pages/VaultGroupingsPage.xaml | 77 +++++++++++++---- src/App/Pages/VaultGroupingsPage.xaml.cs | 33 ++++++++ src/App/Pages/VaultGroupingsPageViewModel.cs | 83 ++++++++++++++++++- src/Core/Models/View/CipherView.cs | 12 +++ src/Core/Models/View/CollectionView.cs | 10 +++ src/Core/Models/View/FolderView.cs | 11 +++ .../Utilities/ExtendedObservableCollection.cs | 37 +++++++++ src/Core/Utilities/ExtendedViewModel.cs | 31 +++++++ 9 files changed, 278 insertions(+), 43 deletions(-) create mode 100644 src/Core/Models/View/CipherView.cs create mode 100644 src/Core/Models/View/CollectionView.cs create mode 100644 src/Core/Models/View/FolderView.cs create mode 100644 src/Core/Utilities/ExtendedObservableCollection.cs create mode 100644 src/Core/Utilities/ExtendedViewModel.cs diff --git a/src/App/Pages/BaseViewModel.cs b/src/App/Pages/BaseViewModel.cs index 9060c5118..1f2e412c8 100644 --- a/src/App/Pages/BaseViewModel.cs +++ b/src/App/Pages/BaseViewModel.cs @@ -1,38 +1,15 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Runtime.CompilerServices; +using Bit.Core.Utilities; namespace Bit.App.Pages { - public abstract class BaseViewModel : INotifyPropertyChanged + public abstract class BaseViewModel : ExtendedViewModel { private string _pageTitle = string.Empty; - public event PropertyChangedEventHandler PropertyChanged; - public string PageTitle { get => _pageTitle; set => SetProperty(ref _pageTitle, value); } - - protected bool SetProperty(ref T backingStore, T value, [CallerMemberName]string propertyName = "", - Action onChanged = null) - { - if(EqualityComparer.Default.Equals(backingStore, value)) - { - return false; - } - backingStore = value; - onChanged?.Invoke(); - OnPropertyChanged(propertyName); - return true; - } - - protected void OnPropertyChanged([CallerMemberName] string propertyName = "") - { - PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); - } } } diff --git a/src/App/Pages/VaultGroupingsPage.xaml b/src/App/Pages/VaultGroupingsPage.xaml index 62885ca02..920b1c166 100644 --- a/src/App/Pages/VaultGroupingsPage.xaml +++ b/src/App/Pages/VaultGroupingsPage.xaml @@ -6,27 +6,72 @@ xmlns:pages="clr-namespace:Bit.App.Pages" x:DataType="pages:VaultGroupingsPageViewModel" Title="{Binding PageTitle}"> + - - -