C# 如何为列表框中的每个项目添加分隔符?

C# 如何为列表框中的每个项目添加分隔符?,c#,wpf,listbox,C#,Wpf,Listbox,我正在用WPF写一个播放列表的音乐播放器。我的播放列表看起来是:但我希望每个项目都有分隔符。我尝试了一些方法,但都是用现成的数据源完成的。在我的播放列表中,我正在代码中添加歌曲 <ListBox x:Name="PlaylistBox" ScrollViewer.HorizontalScrollBarVisibility="Disabled" HorizontalAlignment="Left" Height="358"

我正在用WPF写一个播放列表的音乐播放器。我的播放列表看起来是:

但我希望每个项目都有分隔符。我尝试了一些方法,但都是用现成的数据源完成的。在我的播放列表中,我正在代码中添加歌曲

<ListBox 
        x:Name="PlaylistBox" 
        ScrollViewer.HorizontalScrollBarVisibility="Disabled" 
        HorizontalAlignment="Left"
        Height="358" 
        Margin="19,274,0,0" 
        VerticalAlignment="Top" 
        Width="299" 
        Grid.ColumnSpan="2"
        BorderThickness="0" 
        Foreground="White" 
        SelectionChanged="PlaylistBox_SelectionChanged" 
        MouseDoubleClick="PlaylistBox_MouseDoubleClick" 
        Background="Black" 
        AllowDrop="True"  
        Drop="PlaylistBox_Drop"/>

您可以使用项目模板来完成

在本例中,每个项目都被部分边框包围,在底部画一条线,给人一种分隔符的错觉

<ListBox x:Name="PlaylistBox" ...other properties...>
      <ListBox.ItemTemplate>
            <DataTemplate>
                <Border BorderThickness="0,0,0,2" BorderBrush="Black">
                    <Label Content="{Binding}"/>
                </Border>
            </DataTemplate>
      </ListBox.ItemTemplate>
</ListBox>

可能不适合您,因为我不知道您的项目类型


这只是一个非常基本的示例,可能有更好的方法,我不确定您是如何填充列表框的,请阅读有关MVVM的内容,并将您的项目绑定到模型中的集合中

在本例中,每个项目都被部分边框包围,在底部画一条线,给人一种分隔符的错觉

<ListBox x:Name="PlaylistBox" ...other properties...>
      <ListBox.ItemTemplate>
            <DataTemplate>
                <Border BorderThickness="0,0,0,2" BorderBrush="Black">
                    <Label Content="{Binding}"/>
                </Border>
            </DataTemplate>
      </ListBox.ItemTemplate>
</ListBox>

可能不适合您,因为我不知道您的项目类型


这只是一个非常基本的示例,可能有更好的方法,我不确定您是如何填充列表框的,请阅读有关MVVM的内容,并将您的项目绑定到模型中的集合中。从注释中可以清楚地看出,您正在将项目添加到列表播放框中。项目。添加(“此处的字符串”);如果是,请使用
\n`换行符: 示例如下:

string sample = "04 03:23 sample \n 11145kb .Mp3 44100kHz";
PlaylistBox.Items.Add(sample);
sample = "04 03:23 sample1 \n 11145kb .Mp3 44100kHz";
PlaylistBox.Items.Add(sample);
sample = "04 03:23 sample2 \n 11145kb .Mp3 44100kHz";
PlaylistBox.Items.Add(sample);

但我确信这不是一个好方法,更好的选择是用集合绑定列表。但是问题中的信息有限

从评论中可以明显看出,您正在将项目添加到列表
playlibox.items.Add(“此处字符串”);如果是,请使用
\n`换行符: 示例如下:

string sample = "04 03:23 sample \n 11145kb .Mp3 44100kHz";
PlaylistBox.Items.Add(sample);
sample = "04 03:23 sample1 \n 11145kb .Mp3 44100kHz";
PlaylistBox.Items.Add(sample);
sample = "04 03:23 sample2 \n 11145kb .Mp3 44100kHz";
PlaylistBox.Items.Add(sample);

但我确信这不是一个好方法,更好的选择是用集合绑定列表。但是问题中的信息有限

能否请您包括绑定列表框的代码?您的意思是什么?都是播放列表代码。如何填充列表框?播放框。项目。添加(#项目#);你能举一个你想要的分离类型的例子吗?你能包括绑定listboxWhat的代码吗?都是播放列表代码。如何填充列表框?播放框。项目。添加(#项目#);你能举一个你想要的分离类型的例子吗?