У меня есть простой список с большим количеством элементов, чем помещается на экране. Если вы прокрутите до последнего элемента, он будет показан, но затем снова исчезнет с экрана - я не могу оставить его в поле зрения. После часа поиска в Google это, кажется, известная проблема в ранних версиях Listbox, но это все еще кажется в последних инструментах. Также кажется, что есть проблема с фиксированной высотой и виртуализацией , но установка высоты на уровне элемента или уровне списка не имеет значения. Я вижу, что список в шаблоне приложения WindowsPhoneDataBound работает нормально с прокруткой и без высоты.
Мне также хотелось бы решение без фиксированной высоты, чтобы оно не требовало нового состояния для альбомной ориентации.
Есть предложения, пожалуйста?
Мой список находится в пользовательском контроле, который находится в PivotItem:
<controls:PivotItem x:Name="pivotItemSetup" Header="setup">
<local:listBoxBlindsControl Margin="0,0,-12,0"/>
</controls:PivotItem>
и пользовательский элемент управления:
<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>
Еще немного информации: я скопировал и вставил точный XAML из WindowsPhoneDataBoundApp (который работает) в мой usercontrol, чтобы он теперь выглядел так:
<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>
и это не работает ... так это как-то связано с PivotItem?
Обновление: Я вынул этот код из PivotItem, и он работает нормально. Итак, есть идеи, как заставить его работать в сводном элементе?