0

最初は、IsolatedStorageFile クラスの GetUserContent プロパティを呼び出すだけで、Isolated Storage から取り込まれたファイル名が含まれる ListBoxItem を含む ListBox を List でバインドしていました。

ここで、新しい要件として、Isolated Storage 内のさまざまなフォルダーに対応するヘッダーを持つ Expander を配置したいと考えています。その特定のエキスパンダーが展開されたときに、「\data*」(データ フォルダー) のようなそれぞれのフォルダーから分離ストレージからファイル名を読み込みます。

誰かが Expanderview コントロールで同じことを教えて、そのリストボックス項目に、Isolated Storage に保存された特定のフォルダーのファイル名を入力してください。

前もって感謝します。

4

1 に答える 1

0

まず、説明している 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 つのオプションのいずれかが適切です。

  1. 動作を少し変更して、長いリスト セレクターにします (連絡先ネイティブ アプリの動作に似ています)。これはまさにあなたが望むものではありませんが、Windows Phone のガイドラインに沿ったものであり、頭の痛みが軽減されます。
  2. これを 2 フェーズ操作として実行します。フォルダのリストがあり、そのうちの 1 つをタップすると、関連するアイテムを含む新しいページが開きます。
  3. もう1つのあまり良くないが考えられる解決策は、フォルダーのみを含む ObservableCollection<> を作成し、それに応じて項目を追加/削除することです(それらを正しくフォーマットするようにしてください-スタイルまたはテンプレートセレクターを使用できます)

于 2013-04-23T12:28:11.507 に答える