2008-08-27 8 views
8

Mit WPF habe ich ein TreeView-Steuerelement, das ich ItemTemplate dynamisch durch prozeduralen Code festlegen möchte. Wie mache ich das? Ich nehme an, ich muss die Ressource irgendwo finden.Wie setze ich ItemTemplate dynamisch in WPF?

myTreeViewControl.ItemTemplate = ?? 

Antwort

11

Wenn die Vorlage in Ihrem <Window.Resources> Abschnitt direkt definiert:

myTreeViewControl.ItemTemplate = this.Resources["SomeTemplate"] as DataTemplate; 

Wenn es in Ihrem Fenster irgendwo tief, wie in einem <Grid.Resources> Abschnitt oder etwas, ich denke, das wird funktionieren:

Und wenn es an anderer Stelle in Ihrer Anwendung ist, ich denken App.FindResource ("SomeTemplate") wird funktionieren.

2

Wenn Ihr Treeview-Steuerelement unterschiedliche Vorlagen für Ihre Elemente erfordert, sollten Sie die DataTemplateSelector-Klasse implementieren und ihre Instanz in Ihrer Strukturansicht festlegen. Soweit ich mich erinnere, gibt es eine Eigenschaft von DataTemplateSelector.