我在Windows Phone 8應用程序中有LongListSelector
(在PivotItem
)控件。我看到一個奇怪的行爲。有時LLS停止滾動。像凍結一樣,我無法滾動它。但我可以使用AppBar
,Pivot
,Button Back
等,甚至GroupHeader和JumpList。它隨機發生(到目前爲止我沒有發現規律性)並且經常發生。早些時候我經常使用LLS,但這些問題從來都沒有。LongListSelector停止滾動並凍結
以下是LLS可以凍結的典型場景。
- 轉到使用LLS的頁面。
- 滾動LLS。
- 點擊LLS項目並導航到其他頁面。
- 回到LLS頁面。
- LLS不滾動。
這個包也可以以其他方式發生。
亮點:
- 我也不大集合結合LLS(我的收藏約10 - 50項(5組))。
- 當LLS沒有凍結時,它的工作速度非常快,沒有混蛋。
- 我有一個
ListBox
(1 - 6個字符串元素)在LLS項目中。 - 我用DataTemplateSelector(as implemented here)
- 剖析不顯示響應較差,當LLS凍結
我的XAML:。
<phone:LongListSelector Name="LLSSimpleSearch" VirtualizingStackPanel.VirtualizationMode="Recycling"
ItemsSource="{Binding ListGroup}"
toolkit:TiltEffect.IsTiltEnabled="True"
Margin="12,0,-12,0"
IsGroupingEnabled="True"
LayoutMode="List"
HideEmptyGroups="False"
GroupHeaderTemplate="{StaticResource LLSHeaderTemplate}"
JumpListStyle="{StaticResource LLSJumpList}"
ListFooterTemplate="{StaticResource LLSListFooter}">
的ItemTemplate
<questionary:QuestTemplateSelector Content="{Binding}">
<questionary:QuestTemplateSelector.Template1>
<DataTemplate>
<ListBox></ListBox> <!-- ListBox with small collect-->
</DataTemplate>
<questionary:QuestTemplateSelector.Template1>
<questionary:QuestTemplateSelector.Template2>
<DataTemplate>
</DataTemplate>
</questionary:QuestTemplateSelector.Template2>
<questionary:QuestTemplateSelector.Template3>
<DataTemplate>
</DataTemplate>
</questionary:QuestTemplateSelector.Template3>
<questionary:QuestTemplateSelector.Template4>
<DataTemplate>
</DataTemplate>
</questionary:QuestTemplateSelector.Template4>
</questionary:QuestTemplateSelector>
在CS:
LLSSimpleSearch.DataContext = GYSearchViewModel.Instance;
GYSearchViewModel.Instance.Load();
視圖模型
private ObservableCollection<Group<Quest>> _listGroup = new ObservableCollection<Group<Quest>>();
public ObservableCollection<Group<Quest>> ListGroup
{
get
{
return _listGroup;
}
set
{
if (value != _listGroup)
{
_listGroup = value;
NotifyPropertyChanged("ListGroup");
}
}
}
public Load()
{
MyDataSource.Load((r) => { ListGroup= r; })
}
有點怪怪的?在這個代碼中,有潛在的問題?如果需要,我準備提供更多評論。提前感謝您的建議。
UPDATE(問題的解決)
我不能肯定100%,但99%是在ListBox
問題。
<questionary:QuestTemplateSelector.Template1>
<DataTemplate>
<ListBox ScrollViewer.VerticalScrollBarVisibility="Disabled"/>
</DataTemplate>
<questionary:QuestTemplateSelector.Template1>
我必須在列表中顯示我的數據,我用ListBox
內LLS
。實驗方式,經過長時間的測試,我發現了凍結的規律性。然後得出結論,在ListBox
的問題。在問題屬性IsHitTestVisible
幫助。
<questionary:QuestTemplateSelector.Template1>
<DataTemplate>
<ListBox ScrollViewer.VerticalScrollBarVisibility="Disabled"
IsHitTestVisible="false"/>
</DataTemplate>
<questionary:QuestTemplateSelector.Template1>
現在沒問題。
感謝您的建議,明天我會嘗試將靜態數據綁定到LLS並從項目中刪除列表框。我會在後更新中介紹結果。 – Alexandr
OmegaMan,我更新了我的帖子,認爲我想出了問題。 – Alexandr