列表框中的列表框和Windows Phone 7 Silverlight中的滚动问题

时间:2010-07-01 14:51:11

标签: silverlight windows-phone-7

我有一个Windows Phone 7 Silverlight应用程序,它有一个列表框,在项目模板中它绑定了另一个列表框。

<ListBox x:Name="CouponsGrouping">
  <ListBox.ItemTemplate>
    <DataTemplate>
      <StackPanel>
        <TextBlock Text="Expires" />
        <ListBox ItemsSource="{Binding Coupons}" Margin="0,10,0,0">
          <ListBox.ItemTemplate>
            <DataTemplate>
              <StackPanel>
                <HyperlinkButton Content="{Binding StoreName}" HorizontalAlignment="Left"/>
                <TextBlock Text="{Binding CouponText}" Style="{StaticResource PhoneTextNormalStyle}" />
                <TextBlock Text="{Binding CouponType}" Style="{StaticResource PhoneTextNormalStyle}" />
                <Button Content="Press me" />
              </StackPanel>
            </DataTemplate>
          </ListBox.ItemTemplate>
        </ListBox>
      </StackPanel>
    </DataTemplate>
  </ListBox.ItemTemplate>
</ListBox>

当我尝试从内部列表框中滚动(单击并拖动)列表时,父列表框不会滚动。如果我通过点击“Expires”特写框滚动它滚动正常。我怎样才能这样做,当我滚动内部列表框时,父列表框会滚动。

提前谢谢。

2 个答案:

答案 0 :(得分:1)

在您的子列表框中添加ScrollViewer.VerticalScrollBarVisibility="Disabled"。这可以防止不希望的滚动行为。

答案 1 :(得分:0)

来自坦帕的嘿乔纳斯 - 凯文,实际上我只是在查看同样的问题。根据使用情况,我不认为这真的是一个糟糕的用户体验。我解决这个问题的方法是实际使用网格而不是堆栈面板作为外部ListBox的数据模板。然后我将嵌套的ListBox放在外部DataTemplate中后,我将一个带有透明填充的Rectangle。你只需要确保你的Rectangle高而宽,足以掩盖内部ListBox。我的嵌套ListBox只有2-3-4项,所以它确实不是问题。

有意义吗?