Как показать разделитель между элементами в ListBox? - PullRequest
4 голосов
/ 19 июля 2011

Я использую элемент управления ListBox в приложении Windows Phone 7, и я хотел бы показать разделитель / линию между строками списка.Я не смог найти никакой информации об этом, хотя во многих (не wp7) примерах ListBox, похоже, есть разделитель.

Ответы [ 2 ]

11 голосов
/ 19 июля 2011

Получил вдохновение от NestorArturo и узнал об элементе управления Border.

Очень легко обернуть содержимое ItemTemplate в элементе управления Border и указать BorderThickness и BorderBrush.Я пошел по этому пути, потому что он не требует изменений в моей Grid в ItemTemplate.

Элемент управления Border описан здесь: http://www.silverlightshow.net/items/Using-the-Border-control-in-Silverlight-2-Beta-1-.aspx.

Ниже вы можете увидеть, как яиспользуйте это:

<ListBox Background="White" ItemsSource="{Binding Mode=OneWay, Path=MyPath}" Name="listName" SelectionChanged="listName_SelectionChanged">
                    <ListBox.ItemContainerStyle>
                        <Style TargetType="ListBoxItem">
                            <Setter Property="HorizontalContentAlignment" Value="Stretch"></Setter>
                        </Style>
                    </ListBox.ItemContainerStyle>
                    <ListBox.ItemTemplate>
                        <DataTemplate>
here -->                     <Border BorderThickness="0,10,0,10" BorderBrush="Black">
                            <Grid Width="auto" HorizontalAlignment="Stretch" >
                                <Grid.ColumnDefinitions>
                                    <ColumnDefinition Width="auto" />
                                    <ColumnDefinition Width="*" />
                                    <ColumnDefinition Width="48" />
                                </Grid.ColumnDefinitions>
                                <TextBlock VerticalAlignment="Center" FontSize="36" FontWeight="Bold" Grid.Column="0" Foreground="Black" Text="{Binding Path=Title}" Name="title"/>
                                <TextBlock VerticalAlignment="Center" HorizontalAlignment="Right" Grid.Column="1" Foreground="Black" Text="{Binding Path=Location}" Name="location"/>
                                <Image VerticalAlignment="Center" Grid.Column="2" Width="48" Height="48" Source="ApplicationIcon.jpg"/>
                            </Grid>
and here -->                </Border>
                        </DataTemplate>
                    </ListBox.ItemTemplate>
                </ListBox>
8 голосов
/ 19 июля 2011

Вы можете либо изменить шаблон ListBoxItem, либо проще изменить свой ItemTemplate. Вы можете просто добавить разделитель внутри ItemTemplate следующим образом:

<ListBox.ItemTemplate>
  <DataTemplate>
    <Grid>
       <!-- your content goes here ... for example: -->
       <TextBlock Text={Binding Path=InterestingThing}"/>

       <!-- the divider -->
       <Line X1="0" X2="200" Y1="0" Y2="0"
             VerticalAlignment="Bottom"/>
    </Grid>
  </DataTemplate>
</ListBox.ItemTemplate>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...