2

이 문제에 대한 해결책을 찾고 있었지만 아직 적절한 해결책을 찾을 수 없습니다. 도와주세요. 기본적으로 객체 목록에 연결된 트리 뷰가 있습니다. 사용자가 treeviewitem을 클릭하면 treeviewitem을 기반으로 데이터 격자의 데이터를로드합니다. 사용자는 그리드의 데이터를 변경할 수 있습니다. 데이터 그리드에 변경 사항이 있고 사용자가 다른 treeviewitem을 클릭하면 사용자에게 저장하라는 메시지가 표시됩니다. 사용자는 예, 아니요 또는 취소를 선택할 수 있습니다. 사용자가 취소를 선택하면 응용 프로그램은 사용자가 데이터 표를 저장할 때까지 현재 트리 뷰 항목에 머물러있게해야합니다. 문제는 일단 사용자가 다른 treeviewitem을 선택하면 이전 선택이 다시 선택되도록 만들 수 없습니다. "SelectedItemChanging"이벤트가 없습니다. WPF 트리 뷰에는 SelectedItemChanged 이벤트 만 있습니다. 여러 솔루션을 시도하고 있지만 항상 무한정으로 끝납니다. 조언이나 조언을 제공해주십시오.WPF TreeView 취소 TreeViewItem 선택

감사합니다, 호치민

+0

이런 종류의 경우 일반적으로 트리보기에 바인딩 된 (뷰 모델) 개체에 IsSelected 속성을 포함합니다. TreeViewItem.IsSelected 속성과 (모델보기) 개체 속성간에 양방향 바인딩을 설정하면 트리보기에서 항목을 프로그래밍 방식으로 선택할 수 있습니다. DataGrid를 보유하고있는 컨트롤이 (뷰 모델) 인스턴스에 액세스 할 수 있거나 명령을 전달할 수있는 경우 취소시 프로그래밍 방식으로 선택할 수 있습니다. –

답변

1

그냥 바로 SelectedItemChanged 이벤트를 처리하고 필요에 따라 항상 필드를 업데이트, 마지막으로 선택된 항목을 저장하는 개인 필드를 사용할 수 있습니다. 또한 Dave Clemmer가 바인딩 할 수있는 IsSelected 속성을 제안하여 프로그래밍 방식으로 항목을 선택하는 데 도움이됩니다.