2011-01-07 1 views
16

alt textПредотвратить WPF 4,0 Datagrid из Отображения пустого столбца

У меня есть приложение с DataGrid с 1 колонкой (на данный момент). Как удалить второй пустой столбец из datagrid, чтобы в столбце данных отображались только столбцы с данными.

+1

Возможно, вы хотите установить Width = "*"? – vorrtex

+0

Вы хотите, чтобы столбец потреблял всю доступную ширину или вы хотите скрыть «пустой столбец»? –

+0

Я хочу, чтобы столбец потреблял все доступные WIdth –

ответ

15

Как vorrtex сказал в комментарии, что лучше всего сделать, это, вероятно, чтобы установить ширину столбца, чтобы заполнить все доступное пространство:

<DataGrid> 
    <DataGrid.Columns> 
     <DataGridTextColumn Header="FishLine ID" Width="*"/> 
    </DataGrid.Columns> 
    ... 
</DataGrid> 

В зависимости от контейнера вы используете вы также можете выровнять сетку слева сторона, оставляя за собой пустое пространство справа:

<DataGrid HorizontalAlignment="Left"> 
    <DataGrid.Columns> 
     <DataGridTextColumn Header="FishLine ID"/> 
    </DataGrid.Columns> 
    ... 
</DataGrid> 

Надеется, что это то, что вы искали ...

+0

Width = "*" сделал трюк –

+0

Ваш ответ не сработал для меня, вместо этого я использовал следующее определение свойства DataGrid, которое сработало для меня: 'RowHeaderWidth =" 0 "' – Eido95

3

Я думаю, вам нужно установить AutoGenerateColumns Ложь, и сделать что-то вроде этого:

<DataGrid AutoGenerateColumns = "False" ItemsSource = "{Binding BindSource}"> 
    <DataGrid.Columns> 
     <DataGridTextColumn Header = "FishLine ID" Binding = "{Binding ID}" Width="*"/> 
    </DataGrid.Columns> 
</DataGrid> 

Это должно сделать это: р

+0

было намного лучше – DDR

1

Если ширина одного столбца «*» даже тогда я видел пустой столбец справа от DataGrid. Чтобы решить эту проблему, укажите ширину datagrid как «Width = 500» вместо MinWidth и MaxWidth.

<DataGrid AutoGenerateColumns="False" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Width="500" MinHeight="180" CanUserAddRows="False" CanUserDeleteRows="false" ItemsSource="{Binding MyList}" SelectedItem="{Binding SelectedValue}"> 
    <DataGrid.Columns> 
     <DataGridTextColumn Header="Start Date" Binding="{Binding StartDate}" IsReadOnly="True" MinWidth="60" Width="Auto"/> 
     <DataGridTextColumn Header="End Date" Binding="{Binding EndDate}" IsReadOnly="True" MinWidth="60" Width="*"/> 
    </DataGrid.Columns> 
</DataGrid> 
Смежные вопросы