2010-10-31 76 views
1

我有一個應用程序,其中包含一個嵌套的列表框,這是另一個列表的項目模板中的listbox.itemtemplate內的列表框。我想阻止滾動內部列表框而只是滾動外部列表框。此時可以滾動列表,這對用戶來說有點令人困惑。防止滾動嵌套列表

|----------------------- 
| 
| List Item 1 
| |--------------- 
| | Inner item 1 
| | Inner item 2  <--scrolls and I don't want it to 
| |-------------- 
| List Item 2 

回答

2

我打算假設你知道你在做什麼,但是我還會提供一些關於性能考慮的事情。

關於解決您需要停止從scolling內部列表框,您可以使用融合到retemplate內部列表框,並用ContentPresenter更換的ScrollViewer。這將停止滾動。

請注意嵌套列表框的性能問題。特別是你想盡量避免使用不同長度的內部列表框(你的數據可能已經滿足了)。

可變高度列表框項目最多會中斷UI虛擬化,這會妨礙滾動性能。

在最壞的情況,還有報道漂浮的人遇到問題能夠滾動到列表的末尾(被認爲處於測試階段要解決的CTP問題,但仍堆焊一些人。)

您可能還會考慮其他實現來簡化您正在顯示的內容,或者對內部容器使用更輕量級的控件。例如,StackPanel。授予您可能喜歡列表框,因爲它可以遍歷數據。你可以評估你自己的表現。我建議在設備上進行測試,因爲這可能與仿真器不同。

最後,您可能還想看看這些在不久之前放在一起的指導。

Silverlight for Windows Phone 7: ListBox Scroll Performance

有相當的保留列表框不滾動的設備性能的緣故太複雜了幾個有意見。

當最好地執行時,Listbox滾動效果非常好。

+0

我當然永遠不知道我在做什麼。我可能在每個子列表中最多有4個頂級項目,最多可能有12個項目。總共有100個項目。這種數據大小仍然是性能上的擔憂嗎?沒有圖像只是文字。 – stimms 2010-10-31 01:19:20

+0

一般指導不是嵌套列表框。如果你打算這樣做,你會希望仔細看看你在設備上的表現,以驗證你的表現與簡單的列表框相匹配。事實上,你有一個可變數量的內部列表項目是一個響亮的警鐘,出於所述的原因。 – 2010-10-31 02:04:30

0

我從來沒有見過在小屏幕設備上實現這個功能。

將您的「內部列表」放在單獨的頁面上。

這將避免您的問題,並允許您創建具有與用戶可能也已使用的其他應用程序的行爲相匹配的行爲的應用程序,從而使您的應用程序更易於用戶使用。使用/理解

+0

我有類似的情況,我有數據組和單獨的組名稱本身沒有那麼有用。有一個標題列表(外部列表)和每個標題下的項目列表(內部列表)將是非常好的。這似乎是人民應用程序的匹配,其中標題是字母表的字母,人們是內部列表。你同意嗎? – 2011-04-11 19:44:53

+1

@Ryan Pedersen你想要LongListSelector(見http://silverlight.codeplex。com/releases/view/60291)這與原始問題中描述的不同。 – 2011-04-11 22:52:14

+0

非常感謝!這正是我所期待的。 – 2011-04-12 21:39:22

0

ScrollViewer.VerticalScrollBarVisibility =「Disabled」在類似情況下爲我工作。