WPF GridViewColumn Width = "auto" работает только для элементов в текущей области прокрутки - PullRequest
5 голосов
/ 10 июня 2011

У меня есть ListView, который содержит много элементов, и я пытаюсь установить ширину столбца в авто, чтобы они автоматически расширялись до ширины самой длинной строки в столбце. Сначала это работало, но прокручивая список вниз, я заметил, что некоторые из более длинных строк обрезались, потому что столбец не расширялся автоматически. Затем мне пришло в голову, что установка ширины в авто, кажется, вычисляет ширину на основе значений столбца, видимых в сетке в то время. Поэтому, когда я прокручиваю вниз до строк, содержащих более длинные строки для определенного столбца, я могу дважды щелкнуть разделитель столбца, чтобы развернуть его дальше. Такое поведение кажется неправильным.

Как я могу получить расширение столбца до длины самой длинной строки от начала?

1 Ответ

10 голосов
/ 10 июня 2011

Причина заключается в том, что виртуализация предотвращает создание некоторых элементов, а затем они не учитываются при расчете ширины.

Таким образом, вы можете отключить виртуализацию для ListView, добавив это в него ->

<ListView x:Name="lv" ScrollViewer.CanContentScroll="False">

Но будьте осторожны, это может замедлить ваше приложение, если у вас много элементов, так как все они будут сгенерированы при запуске.

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