2010-02-23 43 views

回答

0

我認爲虛擬模式旨在通過只需要獲取和渲染數據來加速應用程序的性能。如果用戶正在滾動文檔,這是否意味着數據已經加載?難道你不能將TextBox綁定到代碼隱藏的屬性上,而只需在用戶滾動時設置該屬性的值?

+0

例如,只加載第一頁數據。當用戶向下滾動時,我想讓文本框問我第二頁,我會提供它。 – 2010-02-23 05:11:21

+0

啊,我明白你的意思了。比如一旦通過滾動到底部來查看第一頁,網站如何動態加載內容。時間來明星這個問題! :) – Dave 2010-02-23 13:45:29

+0

「只有獲取和呈現數據按需」是數據虛擬化。 「只需渲染一些數據」是我們大多數時間需要的(UI虛擬化) – fjch1997 2017-08-09 01:10:47

1

要使用內置的虛擬化(即默認使用ListBox的VirtualizingStackPanel),您需要能夠將內容分塊爲可根據需要一次一個地逐個加載的項目(邏輯滾動)。要做到這一點,對於任意大型文本來說,都需要進行大量的預處理來計算換行,並將文本分成多行或多行。一旦你這樣做了,你將需要使用從ItemsControl派生的容器而不是單個TextBox。你有要求編輯文本嗎?

+0

不可編輯,但能夠選擇文本並按Ctrl + C會很好。 – 2010-02-24 08:18:19