我的問題是我有一個數據綁定的ItemsControl,列表中有一些數據,用戶可以上下滾動。在scrollviewer中保留位置
向列表中添加新項目(即用戶刷新列表)時,滾動位置根據其中的許多新項目而移動。添加新項目時是否有保持滾動位置的方法?
感謝
我的問題是我有一個數據綁定的ItemsControl,列表中有一些數據,用戶可以上下滾動。在scrollviewer中保留位置
向列表中添加新項目(即用戶刷新列表)時,滾動位置根據其中的許多新項目而移動。添加新項目時是否有保持滾動位置的方法?
感謝
嘗試設置IsSynchronizedWithCurrentItem="True"
在列表框
這隻適用於ListBox並需要設置SelectedItem,SelectedItem可能並不總是當前列表框視圖頂部的項目 – 2011-05-29 16:21:59
假設所有項目都是固定高度的,你應該能夠經過調整的ScrollOffset加成是一定要採取的增加的號碼項目考慮。
是的,我考慮過這個問題,但每個項目都是不同的高度,因爲每個項目的長度都有變化。也許我將不得不計算新項目的總高度,並通過調整滾動偏移... – 2011-05-31 05:19:58
如果您在ListBoxTombstoner.cs類[1]中查看Codeplex上的TombStone Helper項目,您會發現代碼可讓您獲取列表框的基礎ScrollViewer並獲取其VerticalOffset屬性。
然後,您可以隨意操作此屬性 - 如果您希望滾動位置在添加項目時移動,或者保持相同,則可以添加該屬性。
我知道我需要訪問等,但它不是那麼簡單,但我找到了解決方案,並會發布當我有機會的時候,在這裏舉例代碼。謝謝 – 2011-07-13 10:32:58
你就不能存儲滾動位置,刷新後手動設置滾動位置回來嗎? – Kolky 2011-05-29 16:14:48
例如,如果用戶位於列表的頂部,則偏移量將爲0.添加新項目時,偏移量仍將爲0. – 2011-05-29 16:18:29