Một câu hỏi hai hướng ở đây, nhưng tôi nghĩ rằng hai chủ đề này được gắn chặt đủ để đảm bảo sự hòa nhập của chúng với nhau.Làm cách nào để tăng tốc độ hiển thị ListBox và lọc ListCollectionView?
Trong đơn đăng ký của chúng tôi, chúng tôi có một số ListBox
, được điền bằng số lượng lớn mặt hàng. Mỗi mục trong số các mục này được hiển thị với một mẫu mục khá phức tạp. Nó nhất thiết khá phức tạp, và trong khi nó có khả năng có thể được pared xuống nhiều hơn một chút tôi có lẽ không thể mất một số tiền lớn ra. Các mục trong số ListBox
đến từ một số ListCollectionView
được tạo từ một số ObservableCollection<>
của các đối tượng cần hiển thị.
Chúng tôi có hai vấn đề.
Đầu tiên là khi chúng ta cấu hình lại bộ lọc cho ListCollectionView
và gọi Refresh
trên đó, có một rất đáng chú ý khóa-up của một vài giây trong UI trong khi nó bị rách xuống và tái tạo, và ListBox
phục hồi lại. Thời gian khóa này có vẻ liên quan đến số lượng các phần tử có trong số ListBox
và dài nhất khi khu vực khách hàng của ListBox
có đầy đủ các mục. Chúng tôi khá chắc chắn rằng việc khóa lại là do các mẫu mục được tạo lại. Tôi đã thử bật ảo hóa, nhưng điều này không có tác dụng trong việc giảm hoặc loại bỏ sự chậm lại. Tôi cũng đang xem xét một số tối ưu hóa khác, như kiểm tra các ràng buộc của chúng ta và sửa đổi các bố trí. Có phương pháp nào để tránh vấn đề cụ thể này, tăng tốc nó hay chuyển nó sang một chủ đề khác không? (Tôi biết người cuối cùng không chắc chắn vì việc hiển thị là tất cả các luồng đơn, nhưng có lẽ có một số cách giải quyết ...)
Thứ hai liên quan đến việc lọc trên ListCollectionView
. Mặc dù đây không phải là vấn đề, chúng tôi nghĩ rằng có khả năng lọc để trở thành vấn đề và gây ra sự khóa đáng chú ý trên chuỗi giao diện người dùng. Tôi đang làm việc để giảm chi phí lọc, nhưng tôi đã tự hỏi nếu có một phương pháp để di chuyển các Làm mới cuộc gọi trên ListCollectionView
vào một chủ đề khác nhau? Không có nỗ lực nào của tôi cho đến nay đã thành công, dường như vì ListCollectionView
không tự động sắp xếp một số sự kiện nhất định vào đúng chuỗi.
Con trỏ đến hoặc giải thích về bất kỳ giải pháp đã biết hoặc tiềm năng nào cho hai vấn đề này sẽ rất hữu ích.
Tôi có cùng vấn đề với dự án wpf của mình. Bạn đã tìm thấy một giải pháp ? –
Đã lâu rồi :) Tôi dường như nhớ rằng chúng tôi đã thực sự tối ưu hóa mẫu, và tái cấu trúc bộ lọc để di chuyển phần lớn nó vào một chủ đề khác. Điều đó làm cho việc khóa lên ít đáng chú ý hơn nhiều. Thật không may, tôi đã thay đổi công việc kể từ đó, vì vậy tôi không biết nếu có thêm công việc nào được thực hiện. Có thể họ đã chuyển sang một điều khiển giống như 'ListBox' của bên thứ ba hoạt động tốt hơn - chúng tôi đã làm điều đó cho lưới của chúng tôi. –