Windows phone 8 Windows Phone 8:LongListMultiSelector不可滚动
我在XAML中有这段代码,一个用于搜索的文本框和一个多行选择列表。问题是,即使有许多项目,multiLineList也不可滚动。如果我移除stackpanel、textblock和textbox,列表在启用滚动的情况下正常工作。有什么建议吗?尝试在网格上方添加一个Windows phone 8 Windows Phone 8:LongListMultiSelector不可滚动,windows-phone-8,multi-select,Windows Phone 8,Multi Select,我在XAML中有这段代码,一个用于搜索的文本框和一个多行选择列表。问题是,即使有许多项目,multiLineList也不可滚动。如果我移除stackpanel、textblock和textbox,列表在启用滚动的情况下正常工作。有什么建议吗?尝试在网格上方添加一个ScrollViewer ... 或者,如果您不使用ScrollViewer来定位元素,您也可以使用它来替换网格。在ScrollViewer中包装LLM将破坏项目虚拟化,如果集合太长,则抛出OutOfMemoryException
ScrollViewer
...
或者,如果您不使用ScrollViewer来定位元素,您也可以使用它来替换网格。在ScrollViewer中包装LLM将破坏项目虚拟化,如果集合太长,则抛出OutOfMemoryException 公开LLMS的内部LongListSelector,然后使用ScrollTo()方法滚动到所需的项
<StackPanel x:Name="LayoutRoot" Background="Transparent" >
<TextBlock Margin="20,20,0,0" Text="Type Text Here" HorizontalAlignment="Left"/>
<TextBox x:Name="SearchTextBox" IsReadOnly="False" HorizontalAlignment="Left" Margin="20,5,0,0" Height="70" Width="400" dp:TextBoxOnTextChangedDependency.UpdateSourceOnChange="True" Text="{Binding SearchBoxText, Mode=TwoWay}" >
<i:Interaction.Triggers>
<i:EventTrigger EventName="TextChanged">
<cmd:EventToCommand PassEventArgsToCommand="True"
Command="{Binding ElementName=SearchTextBox, Path=DataContext.SearchTextBox_TextChangedCommand}"
/>
</i:EventTrigger>
</i:Interaction.Triggers>
</TextBox>
<Grid x:Name="LayoutList" Background="{StaticResource PhoneChromeBrush}">
<toolkit:LongListMultiSelector x:Name="treksLocationItems" Background="Transparent"
ItemsSource="{Binding Path=TreksLocationItems}">
<toolkit:LongListMultiSelector.ItemTemplate>
<DataTemplate>
<Grid Margin="0,5">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Image Width="110" Height="150" Source="{Binding PictureFilename}" VerticalAlignment="Top"/>
<StackPanel Grid.Column="1" VerticalAlignment="Top">
<TextBlock Text="{Binding Name}" Style="{StaticResource PhoneTextLargeStyle}" FontFamily="{StaticResource PhoneFontFamilySemiBold}" Margin="12,-12,12,6"/>
<TextBlock Text="{Binding ShortDescription}" Style="{StaticResource PhoneTextNormalStyle}" TextWrapping="Wrap" FontFamily="{StaticResource PhoneFontFamilySemiBold}"/>
<StackPanel Orientation="Horizontal">
<TextBlock Text="Address:" Style="{StaticResource PhoneTextSmallStyle}"/>
<TextBlock Text="{Binding Path=StreetName}" Style="{StaticResource PhoneTextSmallStyle}" FontFamily="{StaticResource PhoneFontFamilySemiBold}"/>
</StackPanel>
<StackPanel Orientation="Horizontal">
<TextBlock Text="Site:" Style="{StaticResource PhoneTextSmallStyle}"/>
<TextBlock Text="{Binding Path=Website}" Style="{StaticResource PhoneTextSmallStyle}" FontFamily="{StaticResource PhoneFontFamilySemiBold}"/>
</StackPanel>
</StackPanel>
<i:Interaction.Triggers>
<i:EventTrigger EventName="Tap">
<cmd:EventToCommand Command="{Binding Path=DataContext.TapCommand, ElementName=searchItems}" CommandParameter="{Binding Path=Id}" />
</i:EventTrigger>
</i:Interaction.Triggers>
</Grid>
</DataTemplate>
</toolkit:LongListMultiSelector.ItemTemplate>
</toolkit:LongListMultiSelector>
</Grid>
</StackPanel>
我遇到了这个奇怪的问题,并找到了一个简单的解决方案 Longlistselector和LonglistMultiselector都会发生这种情况 当一个页面中有多个控件时,需要将选择器行的高度设置为“*”而不是“自动”,以使滚动功能正常工作 例如:
LongListMultiSelector llms = LongListMultiSelector as LongListMultiSelector;
if (llms != null && llms.ItemsSource.Count > 0)
{
llms.InnerLongListSelector.ScrollTo(llms.ItemsSource[llms.ItemsSource.Count - 1]);
}
//另一行的行定义
//您的选择器的行定义
如果RowDefinition高度未设置为“*”而设置为“自动”,则滚动Longlistselector将不会响应用户的操作。尝试添加scrollviewer并删除网格,但其工作不正常。现在,即使我向上或向下滚动,它也会向上滚动。。。我只是无法向下滚动列表。。。有些东西似乎有问题。但是我在stackpanel上面添加了ScrollViewer,现在它可以正常工作了。谢谢你的提示。
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/> //Row def for another row
<RowDefinition Height="*"/> //Row def for your selector
</Grid.RowDefinitions>