まず、説明している UI は標準的な WP の動作ではありません。あなたがする必要があるのは、グループのコレクションを持つことです。
Groups コレクションにバインドする必要があるアウターリストボックスの ItemsSource:
<LitBox ItemsSource="{Binding Groups}">
次に、ItemTemplate
展開ビューを定義し、別のリスト ボックスをグループの項目にバインドする必要があります。のようなもの (使用している Expander ビューはわかりませんが、おそらく次のようなものになるでしょう):
<ListBox.ItemTemplate>
<whatever:ExpanderView>
<ListBox ItemsSource="{Binding Items}"/>
</whatever:ExpanderView>
</ListBox>
さて、これが悪い考えである理由は、ListBoxes が同じ向きの他のリストボックス内でうまく動作しないからです。せいぜい、ファンキーなスクロールが発生するだけです。最悪の場合、システムが仮想化を処理できないため、メモリの問題が発生します。潜在的なスクロールの問題を回避するために、 をパネル テンプレートとして配置ItemsControl
することもできます。StackPanel
アイテムの数によっては、メモリに問題が発生する可能性があります。
ただし、UI を変更することをお勧めします。次の 3 つのオプションのいずれかが適切です。
- 動作を少し変更して、長いリスト セレクターにします (連絡先ネイティブ アプリの動作に似ています)。これはまさにあなたが望むものではありませんが、Windows Phone のガイドラインに沿ったものであり、頭の痛みが軽減されます。
- これを 2 フェーズ操作として実行します。フォルダのリストがあり、そのうちの 1 つをタップすると、関連するアイテムを含む新しいページが開きます。
- もう1つのあまり良くないが考えられる解決策は、フォルダーのみを含む ObservableCollection<> を作成し、それに応じて項目を追加/削除することです(それらを正しくフォーマットするようにしてください-スタイルまたはテンプレートセレクターを使用できます)