키보드의 삭제 버튼을 눌러 TreeViewItem
에서 자식 노드를 삭제하고 싶습니다. 이 작업을 시도하려면 SelectedItem
을 사용하고 있습니다. 거기에서삭제 버튼이있는 TreeViewItem 삭제
private void Tree_One_KeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Delete)
class.deleteNodeOnKeyPress();
}
내 프로그램이 삭제 작업을 수행해야하는 함수 호출 :
현재 내 코드 숨김에서 KeyDown
이벤트를 사용하고
public static void deleteNodeOnKeyPress()
{
Tree.Items.Remove(Tree.SelectedItem);
}
이 무엇 I 시도해 봤는데, 내 인생에서 왜 효과가 없는지 모르겠다. 전에 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
그래, 두 기능을 모두 통과하지만 노드는 그대로 유지됩니다. –