Как ссылаться на «PreviousData» при настройке ContentPresenter.Style - PullRequest
0 голосов
/ 13 октября 2011

В следующем коде я пытаюсь установить стиль первого элемента в моей коллекции для одного шаблона, а для остальных - другой шаблон, проверив, является ли PreviousElement нулевым.Я думаю, что мой родственник неверен, потому что условие триггера всегда верно.Каким должен быть путь?

    <DataTemplate x:Key="RowItemTemplate">
        <ContentPresenter Content="{Binding}">
            <ContentPresenter.Style>
                <Style TargetType="{x:Type ContentPresenter}">
                    <Setter Property="ContentTemplate" Value="{StaticResource ComparisonTemplate}"/>
                    <Style.Triggers>
                        <DataTrigger Binding="{Binding RelativeSource={RelativeSource PreviousData}}" Value="{x:Null}">
                            <Setter Property="ContentTemplate" Value="{StaticResource SourceTemplate}"/>
                        </DataTrigger>
                    </Style.Triggers>
                </Style>
            </ContentPresenter.Style>
        </ContentPresenter>
    </DataTemplate>

1 Ответ

0 голосов
/ 31 октября 2011

Я создал интерфейс, который имеет bool для определения, какой шаблон должен использовать конкретный элемент:

    <DataTemplate x:Key="RowItemTemplate">
        <ContentPresenter Content="{Binding}">
            <ContentPresenter.Style>
                <Style TargetType="{x:Type ContentPresenter}">
                    <Setter Property="ContentTemplate" Value="{StaticResource ComparisonTemplate}"/>
                    <Style.Triggers>
                        <DataTrigger Binding="{Binding DataItem}" Value="true">
                            <Setter Property="ContentTemplate" Value="{StaticResource SourceTemplate}"/>
                        </DataTrigger>
                    </Style.Triggers>
                </Style>
            </ContentPresenter.Style>
        </ContentPresenter>
    </DataTemplate>
...