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,指定 Horizo​​ntalContentAlignment=Stretch。

<ListView.ItemContainerStyle>
    <Style TargetType="ListViewItem">
        <Setter Property="HorizontalContentAlignment" Value="Stretch"/>
        <Setter Property="Padding" Value="0"/>
    </Style>
</ListView.ItemContainerStyle>