我有一個ItemsControl的地圖上放置符號的窗口。這些符號相當複雜(每一個都由幾個UserControl組成)。ItemsControl由於項目太多而刷新兩個階段?
我有一些場景,每個場景都在地圖上放置一組獨特的符號。有一個允許用戶在場景之間切換的下拉菜單。
如果用戶切換到場景A(其具有22個符號),整個地圖一次性刷新。
如果用戶切換到場景B(其具有39個符號),在地圖上顯示刷新兩次。繪製符號的某些部分,然後在稍後的一小段時間,繪製符號的其餘部分。最後,符號顯示正確,但兩階段刷新非常尷尬,看起來不專業。 (這將是,如果你試圖把一堆汽車的路線圖上,並且代替汽車剛剛出現,第一輛汽車的屍體出現了,再晚一會兒,車輪和鏡子出現了。)
在試圖調試這個時,我想到了兩種情況之間的不同,而且我真正唯一能想到的是符號的數量是不同的。 (這些特殊屬性的差異都是非常隨意的)。所以,我只用情景B的前22個符號進行了測試。地圖刷新一次。我多次提高了符號的數量,並且地圖仍然一次性更新。但是,當我達到38個符號時,地圖又分兩個階段更新。爲了防止最後兩個符號有些奇怪,我試着跳過前兩個,然後抓住其餘的37個,但是地圖又一次更新。最後,我嘗試跳過第一個符號,然後抓住剩餘的38個。現在回到更新地圖的兩個階段。
底線:如果試圖ItemsControl的一次呈現38個或更多的符號,它發生在兩個階段中,否則,它發生於一體。無論符號的數量多少,我都希望地圖在一個階段刷新。
從我讀過有關WPF虛擬化,我不認爲這種行爲有資格作爲虛擬化,因爲,一旦渲染完成,沒有符號被隱藏或關閉屏幕。我的顯示器足夠大,沒有活動的滾動條。
所以,我完全被我在這裏遇到的困惑所困惑。任何想法讚賞。
更新
我試過的可見性設置爲隱藏,然後進行更新,然後設置可見回可見。沒有區別。地圖仍然刷新到階段。 (我也試過暈倒,而不是隱藏的,仍然沒有奏效。)