0

グリッド アプリケーション テンプレートに基づいて Windows ストア アプリケーションを開発しています。新しいプロジェクトを作成すると、アプリケーション用に生成されたサンプル データがいくつかあります。アプリには、ホーム、グループ化されたアイテム、アイテムの詳細の 3 つのページしかありません。

アイテムの詳細に異なるテンプレートを使用することは可能かどうか、また可能な場合はどうすればよいか疑問に思っています。

たとえば、スマートフォンのリストを含むグループと、プリンターのリストを含む別のグループがあります。スマートフォンのアイテム詳細テンプレートには、おそらく「メモリ カード」、「スピーカーフォン」、「オペレーティング システム」などのフィールドがあり、プリンターのアイテム詳細テンプレートには、「速度」、「承認済み」などのフィールドがあります。カートリッジ」、および「用紙サイズ」。

アイテム詳細テンプレートを追加し、表示されるアイテムに応じて適切なテンプレートを使用するにはどうすればよいですか? http://babaandthepigman.wordpress.com/2012/02/08/datatemplateselector-winrt/を見てきましたが、それは XAML アプリケーション専用のようです。私は XAML/VB/C++/C# ではなく、JavaScript と HTML5 を使用しています。

4

1 に答える 1

1

明確にするために、グリッド プロジェクト テンプレートの 3 つのページはgroupedItems(「ハブ」)、groupDetail(「セクション」)、およびitemDetail(「詳細」) です。それらのページに「ハブ」、「セクション」、「詳細」という名前を付ければよかったのにと思います。

ハブ (groupedItems) ページのアイテム タイルがアイテム タイプによって異なるように複数のアイテム テンプレートを持つことについて話している場合、最も簡単な方法は、HTML で複数のアイテム テンプレート (WinJS.Binding.Template) を提供することです。次に、カスタム テンプレート選択関数を記述します。それほど難しいことではありません。私の codeSHOW アプリ ( codeshow.codeplex.com ) を見ると、例を見ることができます... home.js ページを参照してください。ソースはオンラインなので、ここでそのページを見ることができます。

複数の詳細 (itemDetail) ページを用意して、ユーザーがハブから特定のアイテムをクリックしたときに、電話とプリンターに関する情報のページ全体が表示されるようにすることについて話している場合、それは単に問題です。複数のページを持ち、どのページに移動するかについてインテリジェントになります。ユーザーがハブから電話をクリックすると、/pages/phone/phone.html に移動します。プリンタをクリックすると、/pages/printer/printer.html に移動します。

最後に、エンティティ (つまり、電話とプリンター) が十分に類似している場合は、それらを表す単一のページを保持し、そのページを適切なアイテムのテンプレートを変更するのに十分スマートにすることができます。その場合、ページに 2 つのテンプレートを作成し (WinJS.Binding.Template をもう一度)、エンティティがページに渡されると (の「オプション」部分ready(element,options))、それを調べてエンティティ タイプを確認するだけです (電話やプリンターなど) を作成し、データを適切なテンプレートにレンダリングします。そこでは、codeSHOWのBinding and TemplatingFragments and Pagesのデモが役立つ場合があります。

さらにサポートが必要な場合は、usdpe.ohours.orgで Microsoft Developer Evangelist との 1 対 1 のスケジュールを設定できます。楽しむ!

于 2013-03-12T16:49:07.620 に答える