2012-03-01 20 views
5

Tôi muốn tải 10 000 mục trong một DataGrid trong WPF. Khi sử dụng điều khiển Window, dữ liệu sẽ tải nhanh hơn khi sử dụng điều khiển Page. Ai đó có thể giải thích lý do tại sao?Có chênh lệch tốc độ tải giữa Trang và Cửa sổ trong WPF không?

+0

tại sao bạn không tạo thử nghiệm đơn giản? –

+0

Tôi có thể sử dụng công cụ lược tả (dotTrace hoặc ANTS) để xem điều gì đang xảy ra và điều gì gây ra sự khác biệt. – pguzewicz

+0

Bạn có cần chỉnh sửa hoặc thêm không? Nếu không, bạn sẽ nhận được hiệu suất tốt hơn với một ListView GridView. Tôi sẽ xem lại mã và xem có gì khác không. – Paparazzi

Trả lời

1

Trang được thiết kế để sử dụng trong ứng dụng Điều hướng (thường là với các nút Quay lại và Chuyển tiếp Quay lại và Chuyển tiếp, ví dụ: Internet Explorer). Trang phải được lưu trữ trong một NavigationWindow hoặc một khung

Windows là ứng dụng WPF chỉ thông thường của Windows [lnk]

Đây thực chất là một vấn đề XBAP vs ClickOnce. Bất cứ điều gì trong một trang được biên dịch và giới hạn bởi những gì WPF được phép làm trong một cửa sổ trình duyệt. Điều này ngăn cản nhiều hoạt động máy tính cấp thấp mà WPF Windows có thể lấy đi vì chúng được biên dịch để chạy từ máy tính để bàn. Ứng dụng cửa sổ có toàn quyền truy cập vào tài nguyên hệ thống.

Hãy nhớ rằng khi bạn sử dụng điều khiển Trang, ngay cả trong quá trình gỡ lỗi, mã được tạo sẽ được tạo bằng cách triển khai trình duyệt. Tất cả XBAP được chạy trong một hộp cát bảo mật hạn chế dưới sự tin tưởng một phần. Nói cách khác, họ được phép sử dụng một số thư viện .NET nhưng bị cấm truy cập vào các thư viện khác. [ref] Một số thư viện .NET sẽ chịu trách nhiệm tối ưu hóa do đó không thể đạt được trong triển khai trình duyệt.

Như vậy, điều này hoàn toàn có ý nghĩa rằng các ứng dụng được xây dựng trong Windows sẽ có thể thực hiện hầu hết các hoạt động nhanh hơn các ứng dụng được xây dựng trong Trang.

Các vấn đề liên quan