Windows phone 8 Windows Phone 8:LongListMultiSelector不可滚动

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

我在XAML中有这段代码,一个用于搜索的文本框和一个多行选择列表。问题是,即使有许多项目,multiLineList也不可滚动。如果我移除stackpanel、textblock和textbox,列表在启用滚动的情况下正常工作。有什么建议吗?

尝试在网格上方添加一个
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>