Список с настраиваемым шаблоном элемента в зависимости от типа свойства элемента [дубликат]

для вас объекты переопределяют метод 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 ....

29
задан Craig 10 May 2016 в 15:28
поделиться

1 ответ

Не устанавливайте 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>
44
ответ дан H.B. 19 August 2018 в 20:07
поделиться
  • 1
    Это сработало. Благодарю. – user1175793 29 January 2012 в 08:38
  • 2
    @ user1175793: Рад это слышать, если он достаточно ответил на ваш вопрос, вы могли бы принять его. – H.B. 29 January 2012 в 15:15
  • 3
    Я не понимал, что законно устанавливать ContentTemplate с помощью DataTemplate? Как это работает? – blue18hutthutt 7 November 2012 в 01:43
  • 4
    @ blue18hutthutt: ContentTemplate - это просто свойство, которое может иметь любой тип, в этом случае тип DataTemplate, как можно видеть в документации . Не путать с ControlTemplate, который также является типом шаблона, который используется с свойством Template . Также существуют аналогичные свойства: ContentControl - & gt; ContentTemplate & amp; ItemsControl - & триазоло ItemTemplate. – H.B. 7 November 2012 в 03:51
  • 5
    Вот откуда начинается путаница :) Подумайте об этом .., что также объясняет многое из другой путаницы из прошлого! – blue18hutthutt 7 November 2012 в 04:03
Другие вопросы по тегам:

Похожие вопросы: