2016-11-30 322 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可以根據內容進行擴展。