使用 DataTemplate 在 ListViewItem 中对齐

Alignment in ListViewItem using DataTemplate

我正在使用 ListView 显示人员的名字和姓氏。 我想将名字左对齐,姓氏右对齐

我写了下面的代码:

<Windows.Resources>
  <DataTemplate Datatype="{x:Type local:Person}">
  <StackPanel Orientation="Horizontel">
   <TextBlock Text="{Binding Path=FirstName}" TextAlignment="Left">
   <TextBlock Text="{Binding Path=LastName}" TextAlignment="Right">
  </StackPanel>
  </DataTemplates>
</Windows.Resources>

<ListView Name="myList", ItemSource="{Binding}" />

ListView.DataContext 连接到 ObservableCollection

结果是名字和姓氏都左对齐。 我也尝试使用 DockPanel(How to make DockPanel fill available space) 但它不起作用。

谢谢,

我在这个 post 中找到了解决方案:[https://www.whosebug.com/questions/10765652/how-to-right-align-content-in-a-datatemplate][]

<Windows.Resources>
  <DataTemplate DataType="{x:Type local:Person}">
  <Grid>
   <Grid.ColumnDefinition>
     <ColumDefinition Width="*" />
     <ColumDefinition Width="Auto" />
   </Grid.ColumnDefinition>
   <TextBlock Text="{Binding Path=FirstName}" Grid.Column="0">
   <TextBlock Text="{Binding Path=LastName}" Grid.Column="1">
 </Grid>
 </DataTemplates>
</Windows.Resources>

<ListView Name="myList", ItemSource="{Binding}" HorzintalContentAlignment="Strech" />

你可以使用 DockPanel

 <Windows.Resources>
  <DataTemplate DataType="{x:Type local:Person}">
  <DockPanel>
     <TextBlock Text="{Binding Path=FirstName}"  HorizontalAlignemnt="Left">
     <TextBlock Text="{Binding Path=LastName}" HorizontalAlignemnt="Right">
 </DockPanel>
 </DataTemplates>
 </Windows.Resources>

  <ListView Name="myList", ItemSource="{Binding}" HorzintalContentAlignment="Strech" />