WPFリストの各アイテムに異なるアイテムテンプレートがありますか?
-
02-07-2019 - |
質問
リストコントロール内に多くのアイテムがあります。アイテムのタイプに応じて、各アイテムに異なるアイテムテンプレートを設定します。したがって、リストの最初の項目はObjectAタイプであるため、ItemTemplateAでレンダリングする必要があります。 2番目のアイテムはObjectBタイプであるため、レンダリング用にItemTemplateBが必要です。現時点では、ItemTemplate設定を使用して、すべてのテンプレートを1つだけ定義できます。これを達成する方法はありますか?
解決
ItemTemplateSelector
は機能しますが、リソースセクションに複数の DataTemplate
を作成し、それぞれに DataType
。アイテムジェネレーターが一致するデータ型を検出した場合、これは自動的にこの DataTemplate
を使用しますか?
<DataTemplate DataType={x:Type local:ObjectA}>
...
</DataTemplate>
DataTemplate
に x:Key
が設定されていないことも確認してください。
このアプローチの詳細については、こちら
他のヒント
ItemTemplateSelector をご覧ください a>リストコントロールのプロパティ。カスタムTemplateSelectorをポイントして、コードで使用するテンプレートを決定できます。
TemplateSelectorsについて説明するブログ投稿:
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/