2010-02-23 6 views

ответ

0

Я думал, что виртуальный режим был предназначен для ускорения производительности приложений, получая и обрабатывая данные по запросу. Если пользователь прокручивает документ, разве это не означает, что данные уже загружены? Не могли бы вы привязать TextBox к свойству в коде и просто установить значение этого свойства во время прокрутки пользователя?

+0

Например, загружается только первая страница данных. Когда пользователь прокручивается вниз, я хочу, чтобы текстовое поле запрашивало у меня вторую страницу, и я предоставлю ее. –

+0

ах, я понимаю, что вы имеете в виду. например, как веб-сайты динамически загружают контент, когда просматривается первая страница, прокручивая ее вниз. время, чтобы задать этот вопрос! :) – Dave

+0

«только получение и рендеринг данных по запросу» - это виртуализация данных. «получение всего, но только предоставление некоторых данных по запросу» - это то, что нам нужно большую часть времени (виртуализация пользовательского интерфейса). – fjch1997

1

Чтобы использовать встроенную виртуализацию (то есть VirtualizingStackPanel, используемую по умолчанию ListBox), вы должны иметь возможность разбивать содержимое на элементы, которые могут быть последовательно загружены по мере необходимости (логическая прокрутка). Для этого для произвольного большого текста потребуется много предварительной обработки для вычисления переноса строк и разбиения текста на строки или группы строк. После этого вам нужно будет использовать контейнер, полученный из ItemsControl, вместо одного TextBox. У вас есть требование иметь редактируемый текст?

+0

Не редактируемый, но возможность выбрать фрагмент текста и сделать Ctrl + C будет хорошо. –

Смежные вопросы