1

如何让 LongListSelector 在多列中显示项目?

假设三个“项目”足以垂直填充屏幕,但水平方向仍有足够空间容纳另一列。代替:

item1
item2
item3
... (scroll down)
item4
item5
item6
... (scroll down)
item7

我想看看:

item1 item5
item2 item6
item3 item7
...(scroll down)
item4

我猜我需要在某处引入 WrapPanel,但不确定如何?寻找 XAML 解决方案。

我们正在使用项目组,但不需要在列方面进行任何特殊分组。换句话说,组标题可以与项目内联显示;他们不需要跨越列。给定的组不必属于同一列或同一屏幕。

我们正在针对 WP7 进行构建,因此我们使用的是 WP7 Toolkit 的 LongListSelector 版本,而不是功能更全面的 WP8 版本,其 LayoutMode 可以轻松解决这个问题!

更新:根据 Chris W 的回答,我下载并构建了我的“自己的”WP7 工具包,将 Generic.xaml 修改如下:

                    <primitives:TemplatedListBox.ItemsPanel>
                        <ItemsPanelTemplate>
                            <controls:WrapPanel Orientation="Vertical"/>
                        </ItemsPanelTemplate>
                    </primitives:TemplatedListBox.ItemsPanel>

但是这些项目没有换行,尽管限制了数据模板项目的宽度以确保有第二列的空间。

根据这个问题,我似乎必须明确设置 WrapPanel 的高度才能获得所需的行为。我尝试对 WrapPanel 的 Height 和 MaxHeight 进行硬编码,只是为了看看这是否可行(不是一个可行的永久解决方案),但它也不起作用!

由于我们不需要 LongListSelector 的“跳转到分组”功能(我们选择它只是为了进行项目分组),我可以简单地使用带有 ValueConverter 的 ListBox 来启用分组

4

0 回答 0