文本块为列表框项目模板中的每个项目应用换行符

Textblock apply linebreak for each item in listbox item template

我有以下 xaml 列表框代码。事情是我想在呈现每个文本块的末尾应用换行符。目前我只在第一项的末尾换行。但是我没有得到剩余项目的换行符。请帮忙。不要担心列表框的 Itemsource 是从 cs 绑定的。

 <ListBox Name="lstreviews" ScrollViewer.VerticalScrollBarVisibility="Auto" Height="470">
       <ListBox.ItemTemplate>
           <DataTemplate>
               <Grid>
                   <Grid.RowDefinitions>
                       <RowDefinition Height="Auto"></RowDefinition>
                       <RowDefinition Height="Auto"></RowDefinition>
                       <RowDefinition Height="Auto"></RowDefinition>
                   </Grid.RowDefinitions>
                   <Grid.ColumnDefinitions>
                       <ColumnDefinition Width="Auto"></ColumnDefinition>
                       <ColumnDefinition Width="Auto"></ColumnDefinition>
                   </Grid.ColumnDefinitions>
                   <TextBlock Grid.Row="0" Grid.Column="0" Text="Name:"></TextBlock>
                   <TextBlock Grid.Row="0" Grid.Column="1" Text="{Binding author_name}"></TextBlock>
                   <TextBlock Grid.Row="1" Grid.Column="0" Text="Rating:"></TextBlock>
                   <TextBlock Grid.Row="1" Grid.Column="1" Text="{Binding rating}"></TextBlock>
                   <TextBlock Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="2" TextWrapping="Wrap" Width="360" Text="{Binding text}">
                       <LineBreak></LineBreak>
                   </TextBlock>
               </Grid>
           </DataTemplate>
       </ListBox.ItemTemplate>
   </ListBox>

一个换行符就是空的space。只需为您的网格添加底部边距。你把换行符弄得太复杂了:)。

您只需要像建议的那样指定边距

 <TextBlock Grid.Row="0" Grid.Column="0" Margin="10" Text="Name:"></TextBlock>