для вас объекты переопределяют метод clone ()
class You_class {
int a;
@Override
public You_class clone() {
You_class you_class = new You_class();
you_class.a = this.a;
return you_class;
}
}
и вызывают .clone () для объекта Vector obj или ArraiList obj ....
Не устанавливайте ItemTemplate
, но используйте ItemTemplateSelector
.
DataTriggers
тоже, конечно, тоже прекрасны, добавляет вам дополнительный класс для селектора , например
<ItemsControl.ItemTemplate>
<DataTemplate>
<ContentControl Content="{Binding}">
<ContentControl.Style>
<Style TargetType="ContentControl">
<Style.Triggers>
<DataTrigger Binding="{Binding ThatProperty}" Value="1">
<Setter Property="ContentTemplate"
Value="{StaticResource myDataTemplate1}" />
</DataTrigger>
<DataTrigger Binding="{Binding ThatProperty}" Value="2">
<Setter Property="ContentTemplate"
Value="{StaticResource myDataTemplate2}" />
</DataTrigger>
</Style.Triggers>
</Style>
</ContentControl.Style>
</ContentControl>
</DataTemplate>
</ItemsControl.ItemTemplate>
ContentTemplate
- это просто свойство, которое может иметь любой тип, в этом случае типDataTemplate
, как можно видеть в документации . Не путать сControlTemplate
, который также является типом шаблона, который используется с свойствомTemplate
. Также существуют аналогичные свойства:ContentControl
- & gt;ContentTemplate
& amp;ItemsControl
- & триазолоItemTemplate
. – H.B. 7 November 2012 в 03:51