2011-05-13 40 views
8

Tôi muốn điều khiển trình xem nhật ký hiệu quả trong WPF chỉ hiển thị nhật ký trực tiếp khi các thư đang được thêm vào. Nó không phải là vấn đề để treo lên để thông báo từ hệ thống đăng nhập, nhưng tôi lo lắng rằng một cửa sổ đăng nhập sẽ đến với một thu thập thông tin với mỗi dòng đăng nhập phụ thêm khi số lượng các dòng đăng nhập phát triển lớn.Trình xem nhật ký trực tiếp hiệu quả trong WPF

Sự kiện thông báo nhật ký sẽ chỉ cung cấp chuỗi nhật ký (cùng với một số meta) mà tôi muốn nối thêm vào các dòng trong TextBox hoặc tương tự với thanh cuộn. Giả sử rất nhiều bộ nhớ, gắn thêm một số lượng lớn các dòng không phải là một vấn đề bộ nhớ, nhưng tôi không muốn hệ thống làm chậm một khi số dòng 10.000 đang được thêm vào.

Tôi giả định rằng ràng buộc một TextBox vào một thuộc tính phụ thuộc chuỗi đơn giản sẽ nhận được khá chậm khi chuỗi đang nhận được vào MB kích thước và hàng ngàn dòng.

Làm cách nào để viết điều khiển hiệu quả trong WPF?

+0

liên quan: [là gì cách nhanh để hiển thị chế độ xem nhật ký trong WPF?] (http://stackoverflow.com/questions/430609/what-is-a-fast-way-to-render-a-log-view-in-wpf) – publicgk

Trả lời

11

tại sao không sử dụng hộp danh sách? tạo một bộ sưu tập nơi bạn thêm thông điệp tường trình của mình mỗi lần và chỉ cần liên kết bộ sưu tập này với mục itemsscontrol của bạn.

EDIT: tôi sử dụng một DataGrid trong các dự án của tôi để hiển thị các thông điệp đến từ dịch vụ WCF

EDIT2: một số Itemsscontrols đã sau property mà nên giúp đỡ:

<ListBox VirtualizingStackPanel.IsVirtualizing="True" /> 
+0

hộp danh sách cập nhật hiệu quả khi thêm số dòng 10.000? Nếu vậy, tôi đoán nó sẽ hoạt động. – Holstebroe

+0

cũng bạn đang cập nhật bộ sưu tập của bạn nhưng không phải là itemsscontrol trực tiếp :) trong ui của bạn, bạn chỉ cần nhìn thấy một tập con nhỏ của toàn bộ bộ sưu tập. Ảo hóa là chìa khóa. xem EDIT2 của tôi – blindmeis

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