我正在用UWP制作表格(我对UWP还是很陌生,所以请放轻松!甚至可能提出一种实现它的方法要好十倍的方法)来动态加载数据。这是它的XAML代码:
<ListView x:Name="ShiftListView" Grid.Column="0">
<ListView.HeaderTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" x:Name="HeaderColumn"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<TextBlock Text="Location" Grid.Column="0"/>
<TextBlock Text="Role" Grid.Column="1"/>
<TextBlock Text="Date" Grid.Column="2"/>
<TextBlock Text="Start" Grid.Column="3"/>
<TextBlock Text="Finish" Grid.Column="4"/>
</Grid>
</DataTemplate>
</ListView.HeaderTemplate>
<ListView.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<TextBlock Text="{Binding Location}" Grid.Column="0"></TextBlock>
<TextBlock Text="{Binding Role}" Grid.Column="1"></TextBlock>
<TextBlock Text="{Binding Date}" Grid.Column="2"></TextBlock>
<TextBlock Text="{Binding Start}" Grid.Column="3"></TextBlock>
<TextBlock Text="{Binding Finish}" Grid.Column="4"></TextBlock>
</Grid>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
两个网格的列定义都以完全相同的方式完成,但是第一个是唯一一个可以拉伸以填充整个可用空间的网格,但是另一个就像我输入了auto并且仅缩放到内容。我试图将第二组列的宽度绑定到第一组的宽度,但是它没有任何改变。
<ColumnDefinition Width="{Binding ElementName=HeaderColoumn, Path=ActualWidth"/>
但是a,这行不通。
答案 0 :(得分:1)
将ItemContainerStyle追加到ListView,指定HorizontalContentAlignment = Stretch。
<ListView.ItemContainerStyle>
<Style TargetType="ListViewItem">
<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
<Setter Property="Padding" Value="0"/>
</Style>
</ListView.ItemContainerStyle>