wpf listbox с <10k записей ... как мне сделать его эффективным? - PullRequest
3 голосов
/ 14 мая 2011

iphone имеет 10 записей списка одновременно, он не загружает все 10 000 записей и не прокручивает их одновременно. он добавляет одну запись и вычитает одну запись за раз. так как вы делаете это в списке wpf? как мне сделать, скажем, 20 записей списка, добавить одну или две, и вычесть ту же сумму? данные, связывающие список, решают эту проблему производительности?

Ответы [ 2 ]

5 голосов
/ 14 мая 2011

То, что вы ищете, это VirtualizingStackPanel. Этот элемент управления отображает только те элементы, которые вам действительно нужны, на экране, даже если у вас есть еще тысячи доступных для элемента. Вот статья MSDN об этом:

http://msdn.microsoft.com/en-us/library/system.windows.controls.virtualizingstackpanel.aspx

Вот небольшая статья об этом элементе управления, которая объясняет его просто:

http://windowsclient.net/blogs/microsoft_kc/archive/2009/05/13/what-is-virtualizing-stackpanel.aspx

Одним из ключевых моментов этой второй статьи является то, что вы должны использовать свойство Recycling, чтобы убедиться, что вы используете наименьшее количество ресурсов, например:

VirtualizingStackPanel.VirtualizationMode="Recycling"
2 голосов
/ 14 мая 2011

Элемент управления ListBox WPF по умолчанию использует VirtualizingStackPanel, если только вы не измените свойство ScrollViewer.CanContentScroll на false, и в этом случае вы получаете плавную прокрутку в обмен на потерю виртуализации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...