예제 #1
0
        protected override DataTemplate SelectTemplateCore(object item, DependencyObject container)
        {
            FrameworkElement element = container as FrameworkElement;

            if (element == null)
            {
                return(null);
            }

            DataTemplate groupTemplate = (DataTemplate)Application.Current.Resources[
                String.Format("{0}{1}", NodeTemplateSelector.GroupPrefix, Suffix)
                                         ];
            DataTemplate entryTemplate = (DataTemplate)Application.Current.Resources[
                String.Format("{0}{1}", NodeTemplateSelector.EntryPrefix, Suffix)
                                         ];

            IDatabaseNodeViewModel node = item as IDatabaseNodeViewModel;

            if (node == null)
            {
                return(null);
            }

            IDatabaseEntryViewModel entry = node as IDatabaseEntryViewModel;

            if (entry == null)
            {
                // Group only
                return(groupTemplate);
            }
            else
            {
                // Entry
                return(entryTemplate);
            }
        }
예제 #2
0
        public override bool HandleAcceleratorKey(VirtualKey key, bool shift)
        {
            IDatabaseEntryViewModel selectedEntry = this.childGridView.SelectedItem as IDatabaseEntryViewModel;

            if (!shift)
            {
                switch (key)
                {
                case VirtualKey.S:
                    this.searchBox.Focus(FocusState.Programmatic);
                    this.searchBox.Text = String.Empty;
                    return(true);

                case VirtualKey.I:
                    CreateEntry();
                    return(true);

                case VirtualKey.G:
                    CreateGroup();
                    return(true);

                case VirtualKey.B:
                    if (selectedEntry != null)
                    {
                        selectedEntry.RequestCopyUsernameCommand.Execute(null);
                        return(true);
                    }
                    break;

                case VirtualKey.C:
                    if (selectedEntry != null)
                    {
                        selectedEntry.RequestCopyPasswordCommand.Execute(null);
                        return(true);
                    }
                    break;

                case VirtualKey.U:
                    if (selectedEntry != null)
                    {
                        selectedEntry.RequestLaunchUrlCommand.Execute(null);
                        return(true);
                    }
                    break;
                }
            }
            else
            {
                switch (key)
                {
                case VirtualKey.U:
                    if (selectedEntry != null)
                    {
                        selectedEntry.RequestCopyUrlCommand.Execute(null);
                        return(true);
                    }
                    break;
                }
            }

            return(base.HandleAcceleratorKey(key, shift));
        }