1

複数の列に項目を表示するために LongListSelector を取得するにはどうすればよいですか?

画面を垂直方向に埋めるには 3 つの「アイテム」で十分ですが、水平方向には別の列を配置するのに十分なスペースがあるとします。それ以外の:

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

見たい:

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

どこかに WrapPanel を導入する必要があると思いますが、方法がわかりませんか? XAML ソリューションを探しています。

項目グループを使用していますが、列に関して特別なグループ化は必要ありません。つまり、グループ ヘッダーはアイテムとインラインで表示できます。列にまたがる必要はありません。特定のグループが同じ列または同じ画面に属している必要はありません。

私たちは WP7 に対してビルドしているので、LayoutMode がこれを簡単に解決する完全な機能を備えた WP8 バージョンではなく、WP7 ツールキットのバージョンの LongListSelector を使用しています。

更新: Chris W の回答に従って、「独自の」WP7 ツールキットをダウンロードして構築し、Generic.xaml を次のように変更しました。

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

ただし、2 列目のスペースを確保するために datatemplate アイテムの幅を制限しているにもかかわらず、アイテムは折り返されていません。

この質問によると、目的の動作を得るには、WrapPanel の高さを明示的に設定する必要があるようです。これが機能するかどうかを確認するために、WrapPanel の Height と MaxHeight をハードコーディングしようとしましたが (実行可能な永続的なソリューションではありません)、どちらも機能しませんでした!

LongListSelector の「グループにジャンプ」機能は必要ないので (アイテムのグループ化を行うためだけに選択しました)、単純にListBox を ValueConverter と共に使用してグループ化を有効にします

4

0 に答える 0