В настоящее время у меня есть ListBox, который завернут по горизонтали, но я хотел бы переключить его на LongListSelector. Причина этого, кроме того, что она может быть заполнена множеством элементов, заключается в том, что при использовании ListBox нет согласованности с тем, как элементы обертываются. Я хотел бы видеть столбцы из трех, причем столько строк требуется, когда элементы отображаются в представлении, но с ListBox это может быть два или три в зависимости от ширины элемента. Элемент содержит как изображение, так и текст под ним, а текст (когда он шире изображения) приводит к тому, что элементы в списке обертываются неравномерно.Как преобразовать ListBox в LongListSelector
То, что я в настоящее время
<ListBox Name="ListBoxEffects" SelectionMode="Single" ItemsSource="{Binding}" Margin="{Binding}"
toolkit:TiltEffect.IsTiltEnabled="True" SelectionChanged="ListBox_SelectionChanged" >
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<toolkit:WrapPanel ItemWidth="Auto" />
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Vertical" Margin="12,0,0,24" >
<Image Source="{Binding Thumbnail}" Width="128" Height="128" />
<TextBlock Text="{Binding Name}" TextWrapping="Wrap" FontSize="{StaticResource PhoneFontSizeNormal}" VerticalAlignment="Center" HorizontalAlignment="Center" />
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
И то, что я пытаюсь выполнить
<phone:LongListSelector Name="ListBoxEffects" Margin="{Binding}"
toolkit:TiltEffect.IsTiltEnabled="True"
LayoutMode="Grid" GridCellSize="128,128"
SelectionChanged="ListBox_SelectionChanged" >
<phone:LongListSelector.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Vertical" Margin="12,0,0,24" >
<Image Source="{Binding Thumbnail}" Width="128" Height="128" />
<TextBlock Text="{Binding Name}" TextWrapping="Wrap" FontSize="{StaticResource PhoneFontSizeNormal}" VerticalAlignment="Center" HorizontalAlignment="Center" />
</StackPanel>
</DataTemplate>
</phone:LongListSelector.ItemTemplate>
</phone:LongListSelector>
Я мог бы просто изменить <toolkit:WrapPanel ItemWidth="Auto" />
в оригинале до заданной ширины, но я полагаю, в долгосрочной перспективе запускается с добавлением нескольких элементов динамически, LongListSelector будет намного лучшим вариантом. На данный момент ошибок нет, но в представлении ничего не отображается.
Эй, у вас есть решение вашей проблемы, так как я тоже сталкиваюсь с той же проблемой. – shubhi1910