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); } }
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)); }