Quanto segue è simile a quello che sto cercando di realizzare. Tuttavia, viene visualizzato l'erroreSpecificare ControlTemplate per ItemsControl.ItemContainerStyle
Valore PropertyDescriptor non valido.
sul modello Setter
. Sospetto che sia perché non ho specificato un TargetType
per il Style
; tuttavia, non conosco il tipo di contenitore per ItemsControl
.
<ItemsControl>
<ItemsControl.ItemContainerStyle>
<Style>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<StackPanel>
<TextBlock Text="Some Content Here" />
<ContentPresenter />
<Button Content="Edit" />
</StackPanel>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ItemsControl.ItemContainerStyle>
<!-- heterogenous controls -->
<ItemsControl.Items>
<Button Content="Content 1" />
<TextBox Text="Content 2" />
<Label Content="Content 3" />
</ItemsControl.Items>
</ItemsControl>
Funziona bene! Stavo cercando di fare tutto con XAML, e solo poche righe di codice per ottenere una classe rende tutto felice, pulito e pulito. –
"Se hai aggiunto un elemento diverso da un UIElement, il setter impostava la proprietà Control.Template su ContentPresenter, che avrebbe avuto successo ma non avrebbe avuto alcun effetto." - Ho cercato per anni prima di trovare questo suggerimento! – Daniel