2016-11-30 2 views
0

Я установил DataGrid, где все столбцы, кроме одного, имеют размер по его содержимому. Поэтому я установил эти столбцы на auto, а другой на *. Но DataGrid игнорирует его, а содержимое в столбце с заголовком Množ не полностью видно.Ширины столбцов DataGrid

<DataGrid Name="dataGrid" Margin="1" Grid.Column="0" Grid.Row="0" Grid.ColumnSpan="3" 
      VerticalAlignment="Stretch" HorizontalAlignment="Stretch" MouseDoubleClick="dataGrid_MouseDoubleClick" 
      ItemsSource="{Binding RadkyDokladu.radky}" CanUserSortColumns="False" PreviewKeyDown="dataGrid_PreviewKeyDown" 
      AutoGenerateColumns="False" IsReadOnly="True" FontSize="12" SelectionMode="Single" > 
    <DataGrid.ColumnHeaderStyle> 
     <Style TargetType="{x:Type DataGridColumnHeader}"> 
      <Setter Property="FontSize" Value="12"/> 
     </Style> 
    </DataGrid.ColumnHeaderStyle> 
    <DataGrid.Columns> 
     <DataGridCheckBoxColumn Header="" Binding="{Binding ZASKRTNUTO}" Width="auto" /> 
     <DataGridTextColumn Header="Náz" Binding="{Binding Artikl_NAME}" MinWidth="10" Width="*"/> 
     <DataGridTextColumn Header="Místo" Binding="{Binding Umisteni_NAME}" Width="auto"/> 
     <DataGridTextColumn Header="Množ" Binding="{Binding Mnozstvi, StringFormat=F2}" Width="auto"> 
      <DataGridTextColumn.ElementStyle> 
       <Style TargetType="TextBlock"> 
        <Setter Property="HorizontalAlignment" Value="Right" /> 
       </Style> 
      </DataGridTextColumn.ElementStyle> 
     </DataGridTextColumn> 
     <DataGridTextColumn Header="MJ" Binding="{Binding Jednotka}" Width="auto"/> 
    </DataGrid.Columns> 
</DataGrid> 

Изображение после запуска: image

Что-то случилось с моим кодом?

+0

Это * может * иметь какое-то отношение к заявлению формата. Возможно, ширина текста определяется * до * форматирования. – ChrisF

+0

Спасибо за комментарий, ff это будет причина, здесь какой-то способ, как обойти? – Sk1X1

+0

Я не знаю точно, что в этом причина. Попробуйте удалить форматирование и включить значение с десятичной точкой (например, 2.45) и посмотреть, будет ли она в этом случае иметь правильную ширину. – ChrisF

ответ

0

Это связано с размером вашего DataGrid. Устанавливая:

<DataGrid Margin="1" HorizontalAlignment="Stretch" ... 

ваш DataGrid размер относится к ширине TreeViews родителя (окна). Вы можете попробовать активировать HorizontalScrollBarVisibility="Visible", чтобы растянуть содержимое DataGrids и прокрутить внутри своего DataGrid.

Второй подход заключается в том, чтобы отказаться от Margin, что DataGrid может расширяться в зависимости от содержимого.

Смежные вопросы