2008-12-24 47 views
0

基本上我想要做的是允許用戶鍵入一個字符串值並讓列表框滾動到與他們鍵入的文本相匹配的項目(或第一個LIKE匹配項)。是否有一個WPF列表框相當於Windows窗體Listbox TopIndex?

如果我使用.ScrollIntoView()方法,問題是它將項目放在可見區域的底部,如果該項目在列表中比當前滾動位置更靠下,並且它位於頂部如果它在列表中高於當前滾動位置。我想通過使它成爲列表中的首要項目來使其一致(除非當然,它不能由於是項目的最後一個「頁面」之一)。

我試圖通過選擇項目x進一步向下,其中x是可見項目的數量。這在下車時起作用,但在返回時休息。我一直無法確定哪個索引目前是我列表中頂部可見位置的索引。

WinForms列表框具有.TopIndex屬性,它正是我正在查找的內容,但我一直無法找到WPF等效項。那裏的任何人都有一個想法如何實現這一點?

在此先感謝!

回答

2

使用ScrollIntoView兩次,首先顯示列表中最後一項,然後顯示所選項目。這樣它總是會從下往上工作。您需要在每次通話後調用UpdateLayout以確保位置正確。

+0

我不得不在最後一次調用之前調用UpdateLayout,否則我會在目標項目和最後一個項目之間的列表中獲得這個拖輪戰爭(在它們之間上下滾動不斷滾動) 這是正確的軌道tho ,謝謝! – palehorse 2008-12-26 17:26:38

相關問題