2016-11-30 117 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

感谢您的评论,如果这将是原因,在这里以任何方式如何去处? – Sk1X1

+0

我不确定这是什么原因。尝试删除格式并使用小数(例如2.45)包含一个值,并查看它是否在此情况下获得了正确的宽度。 – ChrisF

回答

0

这是由您的DataGrid的大小造成的。通过设置:

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

DataGrid尺寸属于TreeViews父(窗口)的宽度。您可以尝试激活HorizontalScrollBarVisibility="Visible"以扩展DataGrids内容并在DataGrid内滚动。

第二种方法是删除MarginDataGrid可以根据内容进行扩展。