1
<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>

我在 XAML 中有这个代码,一个用于搜索的文本框和一个多行选择列表。问题是 multiLineList 是不可滚动的,即使有很多项目。如果我删除堆栈面板、文本块和文本框,列表在启用滚动的情况下可以正常工作。有什么建议吗?

4

3 回答 3

1

如果集合太长,将 LLMS 包装在 ScrollViewer 中会破坏项目虚拟化并抛出 OutOfMemoryException。

公开 LLMS 的内部 LongListSelector,然后使用 ScrollTo() 方法滚动到您想要的项目。

LongListMultiSelector llms = LongListMultiSelector as LongListMultiSelector;
    if (llms != null && llms.ItemsSource.Count > 0)
    {
    llms.InnerLongListSelector.ScrollTo(llms.ItemsSource[llms.ItemsSource.Count - 1]);
    }
于 2013-10-29T21:00:49.643 回答
1

尝试ScrollViewer在网格上方添加一个。

<ScrollViewer>
    <Grid x:Name="LayoutList" ....>
        ...
    </Grid>
</ScrollViewer>

ScrollViewer或者,如果您不使用Grid 来定位元素,则可以将其替换为 a 。

于 2013-05-28T09:41:30.603 回答
1

我遇到了这个奇怪的问题并找到了一个简单的解决方案。

Longlistselector 和 LonglistMultiselector 都会发生这种情况。

当您在一页中有多个控件时,您需要将选择器的行高设置为“*”而不是“自动”,以使滚动功能正常工作。

例如 :

<Grid.RowDefinitions>
            <RowDefinition Height="Auto"/>  //Row def for another row
            <RowDefinition Height="*"/>     //Row def for your selector
</Grid.RowDefinitions>

如果 RowDefinition Height 没有设置为“*”而是“Auto”,滚动 Longlistselector 将不会响应用户的操作。

于 2013-11-18T04:52:43.927 回答