8

シナリオ:

  • Windows Phone 7では、リストボックスを使用しています。
  • 200個のアイテムがあると仮定します。
  • リストの150番目のアイテムを選択します
  • リストをロードして、ロード後にリストの一番上にある150番目のアイテムを選択(および表示)したいと思います。

問題:

  • このページで説明されているように、HookScrollViewer()を使用しています( WP7のListBoxオフセット
  • アイテムが最初にロードされたとき、リストには正しいアイテムが表示されません(たとえば、148番目のアイテムが表示されます)。
  • そのページから出て、150番目のアイテムをもう一度クリックします
  • これでリストのインデックスが正しくなり、150番目のアイテムが正確に一番上に表示されます。

質問:

  • 私は正しい解決策を使用していますか?
  • 私がしているのは何が悪いのか、私は解決策を特定しようとしましたが失敗しました!

ヒント:

  • Windows Phoneをお持ちの場合は、アプリをダウンロードしてください:http: //tinyurl.com/9298cdx
  • チャプターを開き、チャプターの途中で(長押しして)何かをブックマークします。
  • アプリケーションを閉じて、アプリケーションを再度開きます。
  • ブックマークをクリックして開きます。
  • 初めて正確な場所に移動しません。
  • アプリを閉じないでください。戻るボタンを押して、ブックマークをもう一度クリックしてください。
  • 今回は場所が正しいです!
  • 問題は、初めての何が問題なのかということです。

読書ページのコード:

どうもありがとう!

4

2 に答える 2

1

苦労した後、私は実際の問題とその解決策を見つけました。

実際の問題:

  • デフォルトでWPに含まれているもの以外の外部フォントを使用しています。
  • 外部フォントがメモリにロードされてからテキストが表示されるまでには、しばらく時間がかかります。
  • その間に、フォントがロードされている間に、リストはすでにロードされています。
  • 最後にテキストが表示され、(拡張が原因である可能性があります)、選択したインデックスの場所が下に移動します。
  • アプリを閉じないと、フォントがメモリに残っているように見え、次回は時間がかからず、ポインタIDが正しく表示されます。

私の解決策:

  • メインページの読み込み中に(外部)フォントを読み込みました。所要時間はごくわずかであるため、アプリの効率には影響しません(読み込み時間の観点から)

建築家が何が起こっているのかをよりよく説明できればいいのですが、言い換えれば、「実際の問題」の技術的背景を知りたいと思っています。

Thanks very much to all those who gave suggestions.

于 2012-10-19T13:21:39.630 に答える
0

データが更新されていないと思います。INotifyPropertyChangedを使用してみてください。使用方法を理解できる例を見てください。

于 2012-10-18T09:44:21.040 に答える