14

リスト コントロール内に多くの項目があります。アイテムの種類に応じて、アイテムごとに異なるアイテム テンプレートを使用したいと考えています。したがって、リストの最初の項目は ObjectA タイプなので、ItemTemplateA でレンダリングする必要があります。2 番目の項目は ObjectB 型なので、レンダリング用に ItemTemplateB が必要です。現時点では、ItemTemplate 設定を使用して、それらすべてに対して 1 つのテンプレートを定義することしかできません。これを達成する方法はありますか?

4

2 に答える 2

15

これは機能しますが、リソース セクションに複数の を作成し、それぞれに を与えるItemTemplateSelector方が簡単だと思います。アイテムジェネレーターが一致するデータ型を検出した場合、これは自動的にこれを使用しますか?DataTemplateDataTypeDataTemplate

<DataTemplate DataType={x:Type local:ObjectA}>
   ...
</DataTemplate>

x:Keyまた、 が設定されていないことを確認してくださいDataTemplate
このアプローチの詳細については、こちらをご覧ください

于 2008-09-30T12:18:29.593 に答える
6

リスト コントロールのItemTemplateSelectorプロパティを見てください。カスタムの TemplateSelector をポイントして、コードで使用するテンプレートを決定できます。

TemplateSelector について説明しているブログ投稿は次のとおりです。

http://blogs.interknowlogy.com/johnbowen/archive/2007/06/21/20463.aspx

編集:これはより良い投稿です:

http://blog.paranoidferret.com/index.php/2008/07/16/wpf-tutorial-how-to-use-a-datatemplateselector/

于 2008-09-30T11:41:22.383 に答える