Nguyên mẫu của tôi hiển thị "tài liệu" chứa "trang" là được đại diện bằng hình thu nhỏ. Mỗi tài liệu có thể có bất kỳ số lượng trang nào. Ví dụ: có thể có 1000 tài liệu với 5 trang mỗi tài liệu hoặc 5 tài liệu với 1000 trang mỗi tài liệu hoặc ở một nơi nào đó. Tài liệu không chứa các tài liệu khác. Trong đánh dấu xaml của tôi, tôi có một số ListBox
, có số ItemsTemplate
tham chiếu đến innerItemsTemplate cũng có một số ListBox
. Tôi muốn 2 cấp độ của các mục đã chọn để tôi có thể thực hiện các hoạt động khác nhau trên tài liệu hoặc trang (xóa, hợp nhất, di chuyển đến vị trí mới, v.v.). InnerItemsTemplate ListBox
sử dụng số WrapPanel
làm ItemsPanelTemplate
.Hộp danh sách WPF với Hộp danh sách - Giao diện người dùng ảo và cuộn
Đối với kịch bản mà tôi có một số lượng lớn các tài liệu với một vài trang mỗi (nói, 10000 tài liệu với mỗi 5 trang), các di chuyển làm việc nhờ tuyệt vời để giao diện người dùng Virtualization bởi VirtualizingStackPanel
. Tuy nhiên, tôi gặp vấn đề nếu tôi có một số lượng lớn trang. Tài liệu với 1000 trang sẽ chỉ hiển thị khoảng 50 lần (mọi thứ vừa với màn hình) và khi tôi cuộn xuống, phần bên ngoài ListBox
sẽ chuyển sang tài liệu tiếp theo, bỏ qua 950 trang hoặc không hiển thị. Cùng với đó, không có VirtualzingWrapPanel
để bộ nhớ ứng dụng thực sự tăng lên.
Tôi tự hỏi nếu tôi đang đi về điều này đúng cách, đặc biệt là vì nó là loại khó giải thích! Tôi muốn có thể hiển thị 10000 tài liệu với 1000 trang mỗi (chỉ hiển thị bất kỳ nội dung nào phù hợp trên màn hình), bằng cách sử dụng Giao diện người dùng ảo và cũng cuộn mượt mà.
Làm cách nào để đảm bảo cuộn di chuyển qua tất cả các trang trong tài liệu trước khi nó hiển thị tài liệu tiếp theo và vẫn tiếp tục ảo hóa giao diện người dùng? Thanh cuộn dường như chỉ di chuyển đến tài liệu tiếp theo.
Có vẻ hợp lý khi đại diện cho "tài liệu" và "trang" - với phương pháp hiện tại của tôi khi sử dụng số ListBox
trong một số ListBox
?
Tôi rất cảm kích mọi ý tưởng của bạn. Cảm ơn bạn.
Cách tiếp cận này thực sự hiệu quả đối với tôi như xa như ảo hóa giao diện người dùng. Bây giờ tôi chỉ cần có được ListBox như hành vi để chọn các mục (trang hoặc tài liệu trong trường hợp này). Làm thế nào tôi có thể nhận được nhiều và mở rộng các chế độ lựa chọn tương tự như ListBox? –
Ngoài ra, tôi đang thiết lập các ItemsPanelTemplate trong ItemsControl đến một WrapPanel, mà dường như không bọc khi tôi thay đổi kích thước các ứng dụng - nó có vẻ cư xử giống như một stackPanel. Nhìn chung, tôi cảm thấy câu trả lời ở trên bởi Ray giúp tôi đi đúng hướng. –
Tôi rất vui vì tôi tình cờ gặp bài đăng này, nó đã cứu tôi kéo tất cả tóc của tôi ra. – Bijington