2016-04-07 4 views
0

Я пишу музыкальный плеер с плейлистом в WPF. Мой плейлист выглядит так: Как добавить разделитель каждого элемента в ListBox?



Но я хочу получить разделитель на каждый предмет. Я пробовал некоторые способы, но все сделано с готовым источником данных. В моем плейлисте я добавляю песни в код.

<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"/> 
+0

не могли бы вы указать код, который связывает список –

+0

Что вы имеете в виду? Это все код плейлиста. – Freshek

+0

как вы заполняете список? –

ответ

3

Вы можете сделать это с помощью шаблона элемента

В этом примере каждый элемент окружен частичная границей, рисуя линию в нижней части, создавая иллюзию сепаратора.

<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> 

<Label Content="{Binding}"/> не может работать для вас, так как я не знаю тип предметов.

Это всего лишь очень простой пример, может быть лучший способ сделать это, я не уверен, как вы заполняете свой список, пожалуйста, прочитайте о MVVM и привяжите свои предметы к коллекции в модели

+0

Да, спасибо. :) После некоторых изменений это выглядит хорошо. – Freshek

0

Из комментария видно, что вы добавляете элементы в список PlaylistBox.Items.Add("String here"); if so use \ 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); 

Но я уверен, что это не лучший способ, лучше вариант привязать список с коллекцией. но имеется ограниченная информация в вопросе