【发布时间】:2013-08-06 19:51:29
【问题描述】:
我希望能够通过按下键盘上的删除按钮从TreeViewItem 中删除子节点。我正在使用SelectedItem 来尝试这样做。
目前我在我的代码隐藏中使用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?)
【问题讨论】:
标签: c# wpf keypress treeviewitem