약 2,000 개의 정렬 된 항목과 선택한 항목이있는 .NET 4.0 WPF DataGrid가 있습니다. DataGrid는 별도의 스레드에서 500ms마다 업데이트되어 항목이 추가되거나 제거됩니다. 각 업데이트 후에 항목 모음이 정렬됩니다.DataGrid 항목의 자동 업데이트
선택한 항목이 목록의 중간에있는 경우 여러 번 업데이트 한 후 가시적 인 영역에서 벗어나는 경우가 종종 있습니다. 사용자가 눈치 채지 못하게 DataGrid를 업데이트하는 방법을 찾고 있습니다. 즉, 선택한 항목을 보이는 영역의 동일한 위치에 유지하십시오.
지금까지 내가 어떻게이 문제를 해결하는 방법이 개 아이디어를 가지고 있지만 그들 중 누구도 자랑스럽게 저를하지 않습니다 :
- 변경 설명서, 즉 자동에서 업데이트 프로세스는 보류중인 업데이트의 수와 텍스트 영역을 넣어 및 "업데이트"버튼이 있습니다. 내 제품 소유자와 다시 협상해야하기 때문에 바람직하지 않습니다.
- 각 업데이트 전에 항목을 반복하여 표시 항목 (this 접근법 사용)의 모음을 가져 와서 표시 항목 내에서 선택한 항목의 상대적 위치를 가져옵니다. 그런 다음 업데이트를 실행하고
ScrollIntoView
을 사용하여 선택한 항목을 초기 위치로 스크롤합니다. 이 문제는 500 밀리 초마다 모든 항목을 루프 처리해야한다는 문제가 있습니다. 이는 프로세서에 대한 많은 작업입니다.
TopIndex 속성을 사용하여 WinForms에서이 문제를 해결하는 데 사용했지만 WPF에는이 문제가 없습니다.
요약하면 사용자가 관심 항목을 추적하지 않고도 정렬되고 자주 업데이트되는 DataGrid에서 항목을 추가/삭제하는 방법에 대한 아이디어는 매우 높이 평가됩니다.
+1 : 나는 또한 추천합니다. 마지막 위치를 기억하고 마지막으로 알려진 위치로 업데이트 스크롤을 한 후 ... – SvenG
그것은 훌륭하고 정확하게 제가 찾고있는 것입니다. 고마워, 신사. – Pavel