Я использую DataGrids в XAML (не Silverlight) со столбцами с изменяемым размером, DataGrid будет расширяться, если пользователь изменяет размер экрана.
В настоящее время, если ширина всех столбцов DataGrid меньше, чем ширина DataGrid, я получаю дополнительный «столбец», который нельзя щелкнуть и не имеет смысла.
Кто-нибудь знает, как сделать так, чтобы один столбец всегда менял размер, чтобы заполнить все оставшееся пространство?
AutoGenerateColumns="True"
?<DataGrid AutoGenerateColumns="True" ColumnWidth="*" ItemsSource={Binding} />
ColumnWidth="*"
в DataGrid, иWidth="*"
в отдельных столбцах есть желаемый эффектУбедитесь, что для вашего DataGrid
Width
установлено что-то вроде{Binding Path=ActualWidth, RelativeSource={RelativeSource Mode=FindAncestor,AncestorType=Window,AncestorLevel=1}}
.Таким образом, ваша установка
Width="*"
атрибута дляDataGrid.Columns/DataGridXXXXColumn
элементов должна работать.источник
Как уже отмечалось, он
ColumnWidth="*"
отлично работал для DataGrid в XAML.Я использовал это в этом контексте:
источник
Задайте для
Width
свойства columns пропорциональную ширину, например*
источник
Мои 2 цента ->
Очень поздно на вечеринку
DataGrid -> Column -> Width = "*" работает, только если родительский контейнер DataGrid имеет фиксированную ширину.
пример: я помещаю DataGrid в Grid -> Column, ширина которого = "Auto", тогда Width = "*" в DataGrid не работает, но если вы установите Grid -> Column Width = "450", значит исправлено, тогда все работает нормально
источник
Еще один поворот на ту же тему:
источник
Я добавил HorizontalAlignment = "Center" (по умолчанию - "Strech"), и это решило мою проблему, поскольку сделало сетку данных настолько широкой, насколько это необходимо. (Удалена настройка ширины сетки данных, если она у вас есть.)
источник
Это не расширит последний столбец сетки xaml, чтобы занять оставшееся пространство, если
AutoGeneratedColumns="True"
.источник
установите для ширины ОДНОГО столбца любое значение, например width = "*"
источник
Для тех, кто ищет обходной путь на C #:
Если вам по какой-то причине необходимо включить «AutoGeneratedColumns», вы можете указать ширину всех столбцов, кроме тех, размер которых вы хотите автоматически изменить ( оставшееся пространство не будет занимать , но размер изменится до содержимое ячейки ).
Пример (dgShopppingCart - мой DataGrid):
Для меня это работает как обходной путь, потому что мне нужно было изменять размер DataGrid, когда пользователь разворачивает окно.
источник