Tengo un cuadro de lista simple con más elementos de los que caben en la pantalla. Si se desplaza al último elemento que se muestra, pero luego vuelve a caer fuera de la pantalla, no puedo dejarlo a la vista. Después de una hora de Google, parece ser un problema conocido en las primeras versiones de Listbox, pero todavía parece ser el caso en las últimas herramientas. También parece haber un problema con fixed heights y virtualization, pero setting the height at item level o el nivel de cuadro de lista no hace diferencia. Veo que Listbox en la plantilla de la aplicación WindowsPhoneDataBound funciona bien con desplazamiento y sin alturas.Wp7 Problema de desplazamiento del cuadro de lista en PivotItem - No puede permanecer en el último elemento, la altura fija no ayuda
También me gustaría una solución sin alturas fijas para que no requiera un nuevo estado para la orientación horizontal.
¿Alguna sugerencia por favor?
Mi cuadro de lista está en un control de usuario que está en un PivotItem:
<controls:PivotItem x:Name="pivotItemSetup" Header="setup">
<local:listBoxBlindsControl Margin="0,0,-12,0"/>
</controls:PivotItem>
y el control de usuario:
<Grid x:Name="LayoutRoot" Background="Transparent">
<ListBox x:Name="listBoxBlinds" ItemsSource="{Binding BlindSet.Blinds}" SelectionChanged="MainListBox_SelectionChanged" Height="500">
<ListBox.ItemTemplate>
<DataTemplate>
<Grid Height="80" Margin="0,0,0,17" Width="103">
<StackPanel Orientation="Horizontal" Visibility="{Binding IsBreak, ConverterParameter=true, Converter={StaticResource boolToVisibility}}" VerticalAlignment="Top" d:LayoutOverrides="Width">
<TextBlock Text="{Binding LevelNumber, ConverterParameter='level \{0\} - ', Converter={StaticResource stringTextConverter}}" TextWrapping="NoWrap" Margin="0" Style="{StaticResource PhoneTextExtraLargeStyle}" d:LayoutOverrides="Width"/>
<TextBlock Text="{Binding SmallBlind, ConverterParameter=\{0\}/, Converter={StaticResource stringTextConverter}}" TextWrapping="NoWrap" Margin="0" Style="{StaticResource PhoneTextExtraLargeStyle}" d:LayoutOverrides="Width"/>
<TextBlock Text="{Binding BigBlind}" TextWrapping="NoWrap" Margin="0" Style="{StaticResource PhoneTextExtraLargeStyle}" d:LayoutOverrides="Width"/>
</StackPanel>
<TextBlock x:Name="txtbreak" Text="break" TextWrapping="NoWrap" Margin="0,0,0,23" Style="{StaticResource PhoneTextExtraLargeStyle}" d:LayoutOverrides="Width, Height" Visibility="{Binding IsBreak, ConverterParameter=false, Converter={StaticResource boolToVisibility}}" Foreground="{StaticResource PhoneAccentBrush}" />
<StackPanel Orientation="Horizontal" Margin="0,0,0,23" VerticalAlignment="Bottom" d:LayoutOverrides="Width">
<TextBlock Text="{Binding MinutesPerBlind, ConverterParameter=\{0\} minutes, Converter={StaticResource stringTextConverter}}" TextWrapping="NoWrap" Margin="0" Style="{StaticResource PhoneTextSubtleStyle}" d:LayoutOverrides="Width"/>
<TextBlock Text="{Binding Ante, ConverterParameter=\, \{0\} ante, Converter={StaticResource stringTextConverter}}" TextWrapping="NoWrap" Margin="0" Style="{StaticResource PhoneTextSubtleStyle}" d:LayoutOverrides="Width" Visibility="{Binding Ante, ConverterParameter=0, Converter={StaticResource valueToVisibility}}"/>
</StackPanel>
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</Grid>
algo más de información: He copiado y pegado el XAML exacta de la WindowsPhoneDataBoundApp (que trabaja) en mi usercontrol de modo que ahora se ve así:
<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
<ListBox x:Name="listBoxBlinds" Margin="0,0,-12,0" ItemsSource="{Binding BlindSet.Blinds}" SelectionChanged="MainListBox_SelectionChanged">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Margin="0,0,0,17" Width="432">
<TextBlock Text="{Binding LevelNumber}" TextWrapping="Wrap" Style="{StaticResource PhoneTextExtraLargeStyle}"/>
<TextBlock Text="{Binding SmallBlind}" TextWrapping="Wrap" Margin="12,-6,12,0" Style="{StaticResource PhoneTextSubtleStyle}"/>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</Grid>
y no funciona ... ¿es algo relacionado con PivotItem? Actualización: Saqué este código del PivotItem y funciona bien ... ¿Alguna idea de cómo hacerlo funcionar en un elemento pivote?
Si codifico la Altura, corrige mi problema, que es muy similar al suyo. Acabo de usar Height = 430 en el xaml en mi control de usuario que se deriva de un listbox. – swinefeaster