2013-05-28 82 views
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也不可滾動。如果我刪除了堆疊面板和文本塊和文本框,那麼該列表可以在啓用滾動的情況下正常工作。任何建議?Windows Phone 8:LongListMultiSelector不可滾動

回答

1

嘗試在網格上方添加ScrollViewer

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

或者,如果你不使用它來定位你的元素,你很可能有一個ScrollViewer取代你的網格。

+0

試圖添加scrollviewer,也刪除網格,但它不能正常工作。現在,即使我向上或向下滾動,它也會上升......我只是無法向下滾動列表......有些東西似乎是越野車。 –

+0

但我已經在StackPanel上面添加了ScrollViewer,現在它的工作正常。謝謝你的提示。 –

1

在ScrollViewer中包含LLMS會破壞項目虛擬化並且如果該集合太長會拋出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]); 
    } 
1

我遇到了這個奇怪的問題,並找到了一個簡單的解決方案。

它發生在Longlistselector和LonglistMultiselector中。

當您在一個頁面中有多個控件時,您需要將選擇器行的高度設置爲「*」而不是「自動」,以使滾動功能正常工作。

例如:

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

如果RowDefinition身高未設置爲「*」,但「自動」,滾動用於Longlistselector不會響應用戶的操作。