XAML 网格列宽不匹配
XAML Grid Column Widths not matching
我正在 UWP 中制作一个动态加载数据的 table(我是 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>
两个网格的列定义以完全相同的方式完成,但是第一个是唯一一个延伸以填充整个可用空间的列 space,但另一个就像我输入了 auto 和仅缩放到内容的大小。我试图将第二组列的宽度绑定到第一组,但它没有改变任何东西。
<ColumnDefinition Width="{Binding ElementName=HeaderColoumn, Path=ActualWidth"/>
可惜这没用。
Here is a screenshot of the problem
将 ItemContainerStyle 附加到 ListView,指定 HorizontalContentAlignment=Stretch。
<ListView.ItemContainerStyle>
<Style TargetType="ListViewItem">
<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
<Setter Property="Padding" Value="0"/>
</Style>
</ListView.ItemContainerStyle>
我正在 UWP 中制作一个动态加载数据的 table(我是 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>
两个网格的列定义以完全相同的方式完成,但是第一个是唯一一个延伸以填充整个可用空间的列 space,但另一个就像我输入了 auto 和仅缩放到内容的大小。我试图将第二组列的宽度绑定到第一组,但它没有改变任何东西。
<ColumnDefinition Width="{Binding ElementName=HeaderColoumn, Path=ActualWidth"/>
可惜这没用。
Here is a screenshot of the problem
将 ItemContainerStyle 附加到 ListView,指定 HorizontalContentAlignment=Stretch。
<ListView.ItemContainerStyle>
<Style TargetType="ListViewItem">
<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
<Setter Property="Padding" Value="0"/>
</Style>
</ListView.ItemContainerStyle>