Beispiel #1
0
        /// <summary>
        /// Handles updating the ViewModel when the user opts to change the sort mode.
        /// </summary>
        /// <param name="sender">The ToggleMenuFlyoutItem being updated.</param>
        /// <param name="dp">The IsChecked property.</param>
        private void SortModeToggled(DependencyObject sender, DependencyProperty dp)
        {
            ToggleMenuFlyoutItem menuItem = sender as ToggleMenuFlyoutItem;

            DebugHelper.Assert(menuItem != null);

            DatabaseSortMode sortMode = menuItem.Tag as DatabaseSortMode;

            DebugHelper.Assert(sortMode != null);

            if (menuItem.IsChecked && ViewModel.SortMode != sortMode)
            {
                // Update ViewModel and uncheck all other buttons
                ViewModel.SortMode = sortMode;
                foreach (MenuFlyoutItemBase sortModeChild in this.sortModeFlyout.Items)
                {
                    if (sortModeChild is ToggleMenuFlyoutItem item && item != menuItem)
                    {
                        item.IsChecked = false;
                    }
                }
            }
            else if (!menuItem.IsChecked && ViewModel.SortMode == sortMode)
            {
                // If we are unchecking the current sort mode, abort - user can't do this
                menuItem.IsChecked = true;
            }
        }
Beispiel #2
0
        public DesignDatabaseViewModel()
        {
            NavigationViewModel = new DatabaseNavigationViewModel();
            SortMode            = new DatabaseSortMode(DatabaseSortMode.Mode.DatabaseOrder, "Database order");
            AvailableSortModes  = new List <DatabaseSortMode>
            {
                SortMode
            };

            IKeePassGroup dbGroup  = GetGroup("Database");
            IKeePassGroup subGroup = GetGroup("Subdirectory", dbGroup);

            dbGroup.Children.Add(subGroup);
            IKeePassGroup rootGroup = GetGroup("Current Root", subGroup);

            subGroup.Children.Add(rootGroup);

            rootGroup.Children.Add(GetGroup("Foo Directory", rootGroup));
            rootGroup.Children.Add(GetGroup("Bar Directory", rootGroup));
            rootGroup.Children.Add(GetGroup("Baz Directory", rootGroup));
            rootGroup.Children.Add(GetGroup("Some Directory", rootGroup));
            rootGroup.Children.Add(GetGroup("Some other node", rootGroup));
            rootGroup.Children.Add(GetGroup("Foo Directory", rootGroup));
            rootGroup.Children.Add(GetGroup("Bar Directory", rootGroup));
            rootGroup.Children.Add(GetGroup("Baz Directory", rootGroup));
            rootGroup.Children.Add(GetGroup("Some Directory", rootGroup));
            rootGroup.Children.Add(GetGroup("Some other node", rootGroup));
            rootGroup.Children.Add(GetGroup("Foo Directory", rootGroup));
            rootGroup.Children.Add(GetGroup("Bar Directory", rootGroup));
            rootGroup.Children.Add(GetGroup("Baz Directory", rootGroup));
            rootGroup.Children.Add(GetGroup("Some Directory", rootGroup));
            rootGroup.Children.Add(GetGroup("Some other node", rootGroup));
            rootGroup.Children.Add(GetEntry("Bank", "welcome", parent: rootGroup));
            rootGroup.Children.Add(GetEntry("Airline", "flymeout", "123456", "myairline.org", parent: rootGroup));
            rootGroup.Children.Add(GetEntry("Facebook", "aloha", parent: rootGroup));

            IKeePassEntry active = GetEntry("FooHub", "secure89", "Jimbo", "http://test.com/", parent: rootGroup);

            rootGroup.Children.Add(active);

            NavigationViewModel.SetEntry(active);
            SortedChildren = new ReadOnlyObservableCollection <IDatabaseNodeViewModel>(
                new ObservableCollection <IDatabaseNodeViewModel>(
                    NavigationViewModel.ActiveGroup.Children
                    .Select(node => new DatabaseNodeViewModel(node, false)))
                );
        }