Я хочу, чтобы иметь возможность удалять дочерние узлы с TreeViewItem
, нажав кнопку удаления на клавиатуре. Я использую SelectedItem
, чтобы попытаться это сделать.Удалить TreeViewItem с кнопкой Delete
В настоящее время я использую KeyDown
событие в моем коде-за:
private void Tree_One_KeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Delete)
class.deleteNodeOnKeyPress();
}
Оттуда моя программа вызывает функцию, которая должна выполнить операцию удаления:
public static void deleteNodeOnKeyPress()
{
Tree.Items.Remove(Tree.SelectedItem);
}
Это то, что я Я пытался, и для жизни меня не знаю, почему это не работает. Раньше у меня были проблемы с событиями keyPress
. Может быть, кто-то может указать мне в правильном направлении.
Сообщите мне, если вам нужен код!
ОБНОВЛЕНИЯ: Я использую e.Key == Key.Delete
, по-прежнему не влияет на какие-либо изменения.
Вот ошибки компилятора после попытки Tree.Items.Remove(Tree.SelectedItem);
The property or indexer 'System.Collections.ObjectModel.Collection<System...TreeViewItem>.Items' cannot be used in this context because the get accessor is inaccessible
'System.Collections.ObjectModel.Collection<System...TreeViewItem>.Items' is inaccessible due to its protection level
'System.Collections.ObjectModel.ObservableCollection<System...TreeViewItem>' does not contain a definition for 'SelectedItem' and no extension method 'SelectedItem' accepting a first argument of type 'System.Collections.ObjectModel.ObservableCollection<System...TreeViewItem>' could be found (are you missing a using directive or an assembly reference?)
Я включил его и обновил свой код. Узел все еще не удаляет из дерева. –
Вы пробовали отлаживать его? Он даже ввел функцию KeyDown? – inixsoftware
Да, это проходит через обе функции, но узел остается. –