private void ShowPhraseContextMenu() { PhraseViewModel phrase = lvwPhrases.SelectedItem as PhraseViewModel; if (phrase == null) { return; } ContextMenu menu = new ContextMenu(); MenuItemBuilder builder = new MenuItemBuilder(); menu.Items.Add(builder.New("Delete").Handler(() => { DeletePhrase(phrase); }).MenuItem); menu.Items.Add(builder.New("Rename").Handler(() => { RenamePhrase(phrase); }).MenuItem); menu.Items.Add(new Separator()); menu.Items.Add(builder.New("Add new phrase value").Handler(() => { AddNewPhraseValue(); }).MenuItem); lvwPhrases.ContextMenu = menu; }
private void AddNewPhraseValue() { if (CurrentCategory == null) { return; } Phrase phrase = new Phrase(); phrase.PhraseText = "<New Phrase>"; phrase.PhraseID = -1; phrase.PhraseCatID = CurrentCategory.CategoryID; PhraseViewModel viewModel = new PhraseViewModel(phrase); (lvwPhrases.ItemsSource as ObservableCollection <PhraseViewModel>).Add(viewModel); viewModel.IsSelected = true; lvwPhrases.Dispatcher.BeginInvoke(new Action(() => { lvwPhrases.ScrollIntoView(viewModel); ListViewItem item = (ListViewItem)lvwPhrases.ItemContainerGenerator.ContainerFromItem(viewModel); if (item != null) { item.Focus(); } })); RegisterPendingChange(new InsertPhraseCommand(phrase)); viewModel.IsRenaming = true; }
private void RenamePhrase(PhraseViewModel phrase) { if (phrase == null || phrase.IsDeleted) { return; } phrase.IsRenaming = true; }
private void DeletePhrase(PhraseViewModel phrase) { if (phrase == null || phrase.IsDeleted) { return; } if (this.Question(String.Format("Are you sure you want to delete the phrase \"{0}\"?", phrase.PhraseText), "Delete phrase?")) { RegisterPendingChange(new DeletePhraseCommand(phrase.Model)); phrase.IsDeleted = true; } }
private void PhraseText_EditingCancelled(object sender, string oldtext) { PhraseViewModel vm = (sender as EditableTextBlock).ViewModel as PhraseViewModel; vm.PhraseText = oldtext; }
private void PhraseText_EditingComplete(object sender, string text) { PhraseViewModel vm = (sender as EditableTextBlock).ViewModel as PhraseViewModel; RegisterPendingChange(new RenamePhraseCommand(vm.Model, text)); }