Silverlight DataGrid Redraw 문제
-
06-07-2019 - |
문제
사용자 컨트롤을 표시하는 단일 템플릿 열이 포함 된 Silverlight Datagrid가 있습니다. 사용자 컨트롤에는 처리를 나타내는 진행률 표시 줄이 있으며 처리가 완료되면 애니메이션이 진행되면 진행률 표시 줄을 숨기고 완성 된 레이블이 표시됩니다.
DataGrid가 스스로를 다시 그리지 않는 것처럼 보이는 두 가지 인스턴스가 있습니다.
첫 번째, 사용자가 많은 스크롤을 수행하면 Datagrid는 USERCONTROL이 보면 애니메이션을 다시 그리기로 시작하여 마침내 아무것도 다시 그리지 않는 지점에 도달합니다.
초, USERCONTROL에는 팝업을 표시하는 클릭 이벤트가 있습니다. 팝업이 닫히면 다시 USERCONTROL이 제대로 다시 그리지 못합니다.
왜이 행동이 일어나고 그 주위의 방법에 대한 아이디어가 있습니까?
해결책
이전 답변이 정확합니다. 컨트롤이 제대로 작동하기를 원한다면로드 _row 및 unloading_row 이벤트를 올바르게 처리해야한다는 것을 알았습니다. 제 경우에는 제어 속성이 실제로 가장 잘 작동하기 위해 객체에 묶여 있습니다. 애니메이션과 가시성 등에 의존하려고 시도하면 이상한 동작이 보일 것이지만 진행바를 무대 뒤에서 각 항목에 대한 진행 상황을 유지하는 객체에 바인딩하면 행이 표시 될 때마다 다시 바뀌고 다시 그리됩니다.
다른 팁
Datagrid에 그리드의 모든 행에 대한 컨트롤 인스턴스가 없다는 것을 이해해야합니다. 데이터 소스는 수백만 행을 가질 수 있지만 그리드는 화면에 맞는 것보다 더 많은 제어 인스턴스가 필요하지 않습니다. 이것은 예를 들어 스크롤 할 때 이전에 보이지 않는 제어 인스턴스를 나타내지 않음을 의미합니다. 현재 가시 가능한 컨트롤을 할당하여 현재 스크롤 위치에 올바른 디스플레이를 작성하는 데 필요한 값이 무엇이든 할당합니다.
해결 방법이 있는지 모르겠습니다.