Tôi có một ListBox
có thể có nhiều hàng bản ghi DB templated, bao gồm Image
, được liên kết với ObservableCollection<MyItem>
. Đôi khi, bộ sưu tập có thể chứa hàng nghìn mục.ListBox, VirtualizingStackPanel và Smooth Scrolling trong WPF
Hiệu suất tuyệt vời, nhưng cuộn là hành vi chuyển tiếp mặc định. Tôi muốn nó có cuộn trơn tru, vì vậy tôi đã bỏ chọn ScrollViewer.CanContentScroll
.
Bây giờ tôi đã cuộn trơn tru, nhưng hiệu suất là khủng khiếp: dữ liệu được truy xuất trong một chuỗi riêng biệt và chuỗi kết thúc nhanh chóng, nhưng phải mất 10-20 giây để kết quả hiển thị trong ListBox
. Tôi cho rằng điều này là do bỏ chọn ScrollViewer.CanContentScroll
thay đổi số VirtualizingStackPanel
cơ bản thành số StackPanel
thông thường và do đó, nó đang tải toàn bộ bộ sưu tập trước khi hiển thị kết quả.
Vì vậy, câu hỏi của tôi là: làm cách nào để giữ lại thao tác cuộn trơn tru mà không làm mất hoạt động và hiệu suất của VirtualizingStackPanel
?
http://stackoverflow.com/questions/1977929/wpf-listbox-with-a-listbox-ui-virtualization-and-scrolling/9875475 Virtua lizingPanel.ScrollUnit = "Pixel" – Guillaume
Bạn có thể có cả cuộn trơn tru và ảo hóa nếu bạn chuẩn bị sử dụng một chút hack. Xem [câu trả lời này] (http://stackoverflow.com/questions/1977929/wpf-listbox-with-a-listbox-ui-virtualization-and-scrolling/9875475#9875475) cho một câu hỏi tương tự để biết chi tiết. –