XAML网格列宽度不匹配

时间:2020-03-07 19:03:39

标签: xaml uwp width

我正在用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,这行不通。

Here is a screenshot of the problem

1 个答案:

答案 0 :(得分:1)

将ItemContainerStyle追加到ListView,指定Horizo​​ntalContentAlignment = Stretch。

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