Frage

Ich habe viele Elemente in einer Liste Kontrolle. Ich möchte jedes Element ein anderes Element Vorlage haben, je nach Art des Artikels. So ist der erste Eintrag in der Liste ist ein ObjectA Typ und so will ich es mit ItemTemplateA gemacht werden. Zweites Element ist ein ObjectB Typ und so will ich es ItemTemplateB für das Rendering haben. Im Moment kann ich nur die ItemTemplate Einstellung verwenden Sie eine Vorlage zu definieren, für sie alle. Jede Art und Weise, dies zu erreichen?

War es hilfreich?

Lösung

wird die ItemTemplateSelector arbeiten, aber ich denke, dass es einfacher ist, mehrere DataTemplates in Ihrem Ressource-Abschnitt zu erstellen und dann einfach jeden ein DataType geben. Dies wird automatisch dann diese DataTemplate verwenden, wenn der Artikel Generator des passenden Datentyp erkennt?

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

Auch stellen Sie sicher, dass Sie keine x:Key haben für den DataTemplate gesetzt.
Lesen Sie mehr über diesen Ansatz hier

Andere Tipps

Haben Sie einen Blick auf die ItemTemplateSelector Eigentum Ihrer Liste Kontrolle. Sie können es auf einen benutzerdefinierten TemplateSelector zeigen und entscheiden, welche Vorlage in Code zu verwenden.

Hier ist ein Blog-Eintrag beschreibt TemplateSelectors:

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

Edit: Hier ist ein besserer Beitrag:

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

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top