2011-12-08 12 views
1

C#で作成されたMetroアプリケーションのデフォルトの「分割ビュー」テンプレートは、ListViewタグのItemTemplate属性を使用します。私はちょうどXAMLとC#を使い始めています。だからまだ圧倒的です。メトロUIでのXAML ItemTemplatesの使用

私はItemsSourceビューにデータ収集を提供するために使用されていることを理解し、私はListViewは、これらのモデルクラスから表示するかを知っている方法についての少し困惑しています。これはItemTemlateで定義されていますか?コードのスニペットがあります:

...ItemTemplate="{StaticResource SnapListItemTemplate}" ItemContainerStyle="{StaticResource SnapListTileStyle}" ItemsPanel="{StaticResource SnapListItemsPanelTemplate}"... 

私は本当にその行の最もを理解していません。これらのSnapList*オプションはどこに定義されていますか?利用可能なテンプレートの一覧がありますか、これらはすべて私のプロジェクトのどこかに定義されていますか? SnapListItemTemplateは特定のイヴァールセットを表示するように探しますか?このテンプレートを変更したり、 "サブクラス化"することはできますか?

たとえば、などtitleようなモデルクラスのプロパティの数、subtitleは、そこにあると私はListViewは、これらの特定の値を引き出すために知っている方法についての好奇心、それはそれらを築くために知っているにもかでる。 subtitle象牙の名前をsubtextに変更したい場合はどうすればよいですか?アイテムテンプレートはどのように更新されますか?

+0

プロジェクトをどのように作成しましたか?標準のプロジェクトテンプレートを使用していますか? –

+0

はい、私はVisual C#、Windows Metroスタイル、分割アプリケーションを使用しています。 (または、グリッドアプリケーションでは、両方とも非常によく似ており、質問は両方に同じように適用されます) –

答えて

3

SnapList*テンプレートは、プロジェクトのどこかで定義する必要があります。

バインディングは{StaticResource ...}です。これは、テンプレート/スタイルなどがXAMLファイルで通常定義されていることを意味します。

あなたは、彼らはおそらくStyles.xamlというファイルに、上げなければならない名前のためのプロジェクト( + FはCtrl +Shiftキー)を検索する場合。

+0

うわー、私はそれを逃したとは思えません。それらはすべてルートXAMLファイルの1つで定義されていました。 (App.xaml、テンプレートプロジェクトを使用している人のために。)今はもっと意味をなさないようになっています。ありがとう! (私は20時間で賞金を授与することができますので、しっかりと座る必要があります)。その間、StaticResourceを定義する必要がありますか(つまりApp.xamlを明示的に意味していますか?私のプロジェクトのXAMLファイル "? –

+0

@craig - それは 'App.xaml'である必要はありませんが、それが入っているリソース辞書があなたがそれを使用しているコードによって見えることを確認する必要があります。 – ChrisF

+0

@Craig静的リソースは、要素ツリーをウォークし、キー値の一致を探します。あなたのケースでは、フレームワークはListViewのSnapListItemTemplateキーを最初に探し、それが親要素であり、それがルート要素に到達するまで続きます。次に、App.xamlを調べます。見つかった最初の一致は、使用されるリソースです。あなたのケースでは、試合はapp.xaml –