ListView中的第一项自定义样式边框

时间:2018-03-19 11:00:22

标签: wpf xaml listview itemcontainerstyle

如何在ListView中为第一项设置不同的样式?在我的情况下,我想改变第一个项目边框,以获得这样的GUI:

list with different border for first item

我当前的代码(没有上边框):

<ListView 
    ItemsSource="{Binding MyData}">
    <ListView.ItemContainerStyle>
        <Setter Property="BorderThickness" Value="0,0,0,1" />
    </ListView.ItemContainerStyle>
</ListView>

1 个答案:

答案 0 :(得分:0)

有一个非常简单的解决方案。您不必编写自定义转换器等。使用PreviousData in RelativeSource

<ListView.ItemContainerStyle>
    <Style TargetType="{x:Type ListBoxItem}">
        <Setter Property="BorderThickness" Value="0,0,0,1" />
        <Style.Triggers>
            <DataTrigger 
                Binding="{Binding RelativeSource={RelativeSource PreviousData}}" Value="{x:Null}">
                <Setter Property="BorderThickness" Value="0,1,0,1"/>
            </DataTrigger>
        </Style.Triggers>
    </Style>
</ListView.ItemContainerStyle>