在下面的代码中,我试图通过检查PreviousElement是否为null来将集合中第一个项的样式设置为一个模板,将其余样式设置为另一个模板。我认为我的亲属资源不正确,因为触发条件总是正确的。路径应该是什么?
<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>
答案 0 :(得分:0)
我创建了一个具有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>