Как автоматически установить ширину столбцов в ListView с привязкой к данным - PullRequest
0 голосов
/ 15 января 2009

У меня есть представление списка с привязкой к данным, и я могу установить ширину столбцов вручную, кроме последнего. Длина данных последнего поля сильно варьируется. Последний столбец необходимо расширить для обработки ширины данных и, если это необходимо, прокрутки. Я попытался установить ширину последнего столбца на какое-то очень большое число, но это сводит заголовок столбца со страницы. Как рассчитать минимальную ширину, которая должна быть в последнем столбце для отображения данных, и если она велика, чтобы сохранить заголовок столбца на странице?

<ListView x:Name="ListViewFlightPlans" Background="#FF000000" IsSynchronizedWithCurrentItem="True" Width="659.5" Height="Auto" 
                      Foreground="#FFFDF3F3"  BorderBrush="{x:Null}" VerticalAlignment="Bottom" Visibility="Hidden" >
                <ListView.View>
                    <GridView>
                        <GridViewColumn Header="CID" DisplayMemberBinding="{Binding Path=CID}" Width="50"/>
                        <GridViewColumn Header="Callsign" DisplayMemberBinding="{Binding Path=ACID}" Width="65"/>
                        <GridViewColumn Header="Type" DisplayMemberBinding="{Binding Path=Type}" Width="65"/>
                        <GridViewColumn Header="Route" DisplayMemberBinding="{Binding Path=Route}" Width="900 e"/>
                    </GridView>
                </ListView.View>
            </ListView>

Ответы [ 2 ]

1 голос
/ 15 января 2009

Поскольку ваш заголовок уходит со страницы, я предполагаю, что ваши заголовки выровнены по центру или справа. Выровняйте заголовок по левому краю, чтобы он оставался на месте (вы можете добавить отступ слева, чтобы имитировать заголовок по центру или по правому краю).

Используйте Width = "Auto", чтобы увеличить ширину столбца в зависимости от самого широкого элемента в столбце.

Пример:

<GridViewColumn Header="Route" DisplayMemberBinding="{Binding Path=Route}" 
     Width="Auto"
     HeaderContainerStyle="{StaticResource WideColumnHeader}"
/>
...
‹!--Somewhere in your resources--›
...
‹Style x:Key="WideColumnHeader" TargetType="{x:Type GridViewColumnHeader}"›
   ‹Setter Property="HorizontalContentAlignment" Value="Left" /›
   ‹Setter Property="Padding" Value="40,0,0,0"
‹/Style›
...
0 голосов
/ 15 января 2009

Вы можете попробовать использовать% вместо пикселей и, возможно, выделить 60% для последнего столбца, тогда как оставшиеся 40% могут быть использованы первыми 3 столбцами .... (не проверенное предположение).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...