Подтвердить что ты не робот

Предотвратить показ пустой колонки WPF 4.0 Datagrid

alt text

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

4b9b3361

Ответ 1

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

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

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

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

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

Ответ 2

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

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

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

Ответ 3

Если ширина одного столбца равна "*", тогда я вижу пустой столбец справа от 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>