2010-05-17 6 views
0

실버 라이트 (Silverlight) 데이터 격자를 올바르게 정렬하고 시간이 너무 빨리 걸리므로 (1/10 초 이하). 여기에 시나리오의 :Silverlight 4 Datagrid 정렬

-WCF 콜백 콜백 -Take 두 번째 의 모든 1/5, ObservableCollection에 의 기존 기록에 일치 -Update ObservableCollection에의 속성 -bind 그리드.

linq 쿼리, PagedCollectionView 및 observablecollection.select()를 사용해 보았는데 모두 너무 느리며 처리에 12 초 이상 걸립니다. 다른 사람이 이것을 경험합니까?

+0

몇 개의 레코드를 정렬합니까? – Stephan

+0

레코드 50 개. 빠르지 만 ...... 그렇지 않다면 ...... – DavyMac23

+0

PagedCollectionView를 시도 할 때 SortDescriptions 컬렉션을 사용하여 정렬을 수행하거나 수동으로 정렬하여 새 PagedCollectionView를 만들지 않습니까? 또한 WCF 콜백이하는 일에 대해 자세히 설명 할 수 있습니까? DataGrid가 변경되어야한다는 것을 의미하는 바뀌고 있습니다. – Stephan

답변

0

별도의 타이머에서 PagedCollectionView.Refresh를 호출하면 작동합니다. 이렇게하면 새로 고침 호출이 1/10 초마다 호출되는 것을 방지 할 수 있습니다 (시나리오에서 콜백 빈도 임).

0

PagedCollectionView를 사용하지만 한 번만 설정하십시오. 응용 프로그램 시작시 하나의보기를 만든 다음 WCF 콜백에서 새 개체를 만드는 대신 개체를 업데이트합니다. 그런 다음 CollectionView에서 Refresh()으로 전화하십시오.

+0

을 제외한 모든 항목을 업데이트합니다.이 작업을 수행했지만 여전히 1/10 초가 넘습니다. 다른 생각을 할 수 있습니까? 평균 시간 동안 나는 PagedCollectionView.Refresh를 가져 와서 콜백을 사용하여 자체 타이머 내부에 던져 넣었다. 괜찮습니다.하지만 저는 50 레코드를 효율적으로 정렬 할 수 없다는 것에 매우 실망합니다. – DavyMac23

+0

소스 모음을 전혀 변경하지 않습니까? 소스 컬렉션을 전혀 변경하지 않으면 DataGrid가 전체 구조를 다시 작성해야합니다. – Stephan

+0

예, 최신 데이터로 컬렉션을 업데이트 중입니다 ... 레코드가 동일하고 그냥 속성을 업데이트하는 중입니다 – DavyMac23