2013-10-02 30 views
0

有我的佈局:女兒DataGrid.Columns填補所有可用的寬度

<DataGrid x:Name="BooksGrid" 
      DataContext="{Binding WorkingBooksSet, Mode=TwoWay}" 
      ItemsSource="{Binding}" 
      RowDetailsVisibilityMode="VisibleWhenSelected" 
      AutoGenerateColumns="False" 
      VerticalAlignment="Top" HorizontalAlignment="Stretch" 
      ColumnWidth="*"> 
    <DataGrid.Columns> 
    <DataGridTextColumn Binding="{Binding Id}" Width="Auto" IsReadOnly="True" /> 
    <DataGridTextColumn Binding="{Binding Title}" /> 
    ... 
    </DataGrid.Columns> 
    <DataGrid.RowDetailsTemplate> 
    <DataTemplate> 
     <DataGrid ItemsSource="{Binding Publications, Mode=TwoWay}" 
       AutoGenerateColumns="False" 
       VerticalAlignment="Top" HorizontalAlignment="Stretch" 
       ColumnWidth="*"> 
     <DataGrid.Columns> 
      <DataGridTextColumn Binding="{Binding Id}" Width="Auto" IsReadOnly="True" /> 
      <DataGridTextColumn Binding="{Binding Publisher}" /> 
      <DataGridTextColumn Binding="{Binding ReleaseYear}" /> 
      ... 
     </DataGrid.Columns> 
     </DataGrid> 
    </DataTemplate> 
    </DataGrid.RowDetailsTemplate> 
</DataGrid> 

它是一個window

正如你所看到的,由於某種原因,女兒DataGrid尚未填補所有可用空間,反而使它們變窄。此外,禁止手動調整列的大小。

我不理解這種行爲,尤其是「父」正確與你的孩子的DataGrid相同的代碼

+1

我遇到過同樣的問題。除了可以'手動調整列大小'的部分。這是非常奇怪的行爲。 –

+1

編輯:問題的答案[這裏](http://stackoverflow.com/questions/11956023/how-to-make-the-last-datagrids-column-occupy-the-whole-left-space)修復它爲了我。也許我的問題不同,很難說。 –

回答

0

添加*寬的一列DataGrid顯示器。

 <DataGrid.Columns> 
      <DataGridTextColumn Binding="{Binding Id}" Width="Auto" IsReadOnly="True" /> 
      <DataGridTextColumn Binding="{Binding Publisher}" /> 
      <DataGridTextColumn Binding="{Binding ReleaseYear}" Width="*" /> 
      ... 
     </DataGrid.Columns> 
+0

它不填充列中的所有可用寬度。 – Veikedo

+0

對不起,它沒有幫助。我會處理一個樣本並更新你。 – Rajiv