Ширина столбца сетки XAML не совпадает - PullRequest
1 голос
/ 07 марта 2020

Я делаю таблицу в UWP (я очень новичок в UWP, так что go легко для меня! Может быть, даже предложите способ, который будет в десять раз лучше реализовать это), который динамически загружает данные. Вот код 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>

Определения столбцов выполняются одинаково для обеих сеток, однако первый является единственным, который растягивается, чтобы заполнить все доступное пространство, но другой работает так, как будто я ввел авто и масштабируется только до размера контента. Я пытался привязать ширину второго набора столбцов к первому набору, но это ничего не меняет.

<ColumnDefinition Width="{Binding ElementName=HeaderColoumn, Path=ActualWidth"/>

Но, увы, это не сработало.

Вот скриншот проблемы

1 Ответ

1 голос
/ 08 марта 2020

Присоединяя ItemContainerStyle к ListView, укажите HorizontalContentAlignment = Stretch.

<ListView.ItemContainerStyle>
    <Style TargetType="ListViewItem">
        <Setter Property="HorizontalContentAlignment" Value="Stretch"/>
        <Setter Property="Padding" Value="0"/>
    </Style>
</ListView.ItemContainerStyle>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...