WPF: DataGrid не расширяется и занимает оба столбца таблицы, когда содержимое второго столбца свернуто - PullRequest
0 голосов
/ 17 марта 2020

У меня есть Grid, который имеет два столбца, первый столбец имеет DataGrid, а второй столбец имеет другую сетку. Я ожидаю, что DataGrid расширится и займет все пространство, когда видимость второй сетки установлена ​​на «свернутый». Ниже приведен фрагмент кода:

<Grid Grid.Row="1" HorizontalAlignment="Left" Width="344">
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="*"/>
        <ColumnDefinition Width="24"/>
    </Grid.ColumnDefinitions>
    <DataGrid MaxWidth="344" Grid.Column="0" SelectedItem="{Binding Dummy, Mode=TwoWay}" Background="DarkGray"
              ItemsSource="{Binding DummyList}" SelectionMode="Single" AutoGenerateColumns="False" RowHeaderWidth="0" GridLinesVisibility="All">

        <DataGrid.Columns>
            <DataGridTemplateColumn Header="" Width="35">
                <DataGridTemplateColumn.CellTemplate>
                </DataGridTemplateColumn.CellTemplate>
            </DataGridTemplateColumn>
            <DataGridTemplateColumn Header="" Width="*" MinWidth="85">
                <DataGridTemplateColumn.CellTemplate>

                </DataGridTemplateColumn.CellTemplate>
            </DataGridTemplateColumn>
            <DataGridTemplateColumn Header="" Width="*" MinWidth="90" >
                <DataGridTemplateColumn.CellTemplate>

                </DataGridTemplateColumn.CellTemplate>
            </DataGridTemplateColumn>
            <DataGridTemplateColumn Header="" Width="*" MinWidth="80">
                <DataGridTemplateColumn.CellTemplate>
                </DataGridTemplateColumn.CellTemplate>
            </DataGridTemplateColumn>
            <DataGridTemplateColumn Header="" Width="*" MaxWidth="25" Visibility="Collapsed">
                <DataGridTemplateColumn.CellTemplate>

                </DataGridTemplateColumn.CellTemplate>
            </DataGridTemplateColumn>
        </DataGrid.Columns>
    </DataGrid>

    <Grid Grid.Column="1" Margin="0,1,0,0" Background="DarkGray" Visibility="Collpased">
        <Grid.RowDefinitions>
            <RowDefinition Height="25"/>
            <RowDefinition Height="Auto"/>
        </Grid.RowDefinitions>
    </Grid>
</Grid>

Даже когда я устанавливаю видимость Grid во втором столбце как свернутую, DataGrid не занимает все пространство, второй столбец остается пустым. Есть ли у меня неправильное ожидание, если да / нет, как я могу добиться такого поведения?

1 Ответ

0 голосов
/ 17 марта 2020

второй столбец имеет фиксированную ширину <ColumnDefinition Width="24"/>, даже если он не содержит дочерних элементов (ot, если они свернуты).

измените ширину на Авто <ColumnDefinition Width="Auto"/> и задайте необходимую ширину для дочерней сетки : <Grid Grid.Column="1" Width="24". Тогда столбец будет реагировать на видимость контента

...