如何在ListViewItem之间添加行

本文关键字:之间 添加行 ListViewItem | 更新日期: 2023-09-27 17:50:53

我应该把ListView的ListViewItem分开。我为它编写了下一个XAML:

<Window.Resources>
    <Style x:Key="myTemplate" TargetType="ListViewItem">
        <Setter Property="BorderThickness" Value="0,4,0,0"/>
        <Setter Property="BorderBrush" Value="Red"/>
    </Style>

</Window.Resources>

现在我可以通过以下方式使用这些资源:

<Grid>
        <ListView Name="listview1" HorizontalAlignment="Left" Height="164" Margin="191,83,0,0" VerticalAlignment="Top" Width="307" ItemContainerStyle="{StaticResource myTemplate}" BorderThickness="5">
            <ListView.View>
                <GridView>
                    <GridViewColumn>
                    </GridViewColumn>
                </GridView>
            </ListView.View>
            <!--this data is only for sample. Really it's load by binding-->
                <ListViewItem Content="1"/>
                <ListViewItem Content="2"/>
                <ListViewItem Content="3"/>
        </ListView>

是的,everythink工作得很好,但我不想对第一个元素应用这种样式(我不想看到第一个元素的边界)。如果我使用下一种方法来实现所需的视图,当它被选中时,项目不会突出显示:

<Window.Resources>
    <Style x:Key="myTemplate" TargetType="ListViewItem">                        
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="ListBoxItem">
                    <StackPanel>
                        <Separator x:Name="Separator"/>
                        <ContentPresenter/>
                    </StackPanel>
                    <ControlTemplate.Triggers>
                        <DataTrigger Binding="{Binding RelativeSource={RelativeSource PreviousData}}" Value="{x:Null}">
                            <Setter Property="Visibility" TargetName="Separator" Value="Collapsed"/>
                        </DataTrigger>
                    </ControlTemplate.Triggers>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>

</Window.Resources>

如何实现所需视图?

如何在ListViewItem之间添加行

只需创建两个样式,第一个样式(不带分隔符)仅应用于第一个元素,第二个样式((带分隔符))应用于所有其他元素