0

私のレイアウトがあります:

<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>

そして窓です

ご覧のとおり、娘DataGridは何らかの理由で利用可能なスペースをすべて埋めておらず、代わりにそれらを狭くしました。さらに、列のサイズを手動で変更することは禁止されています。

DataGrid特に「親」が同じコードで正しく表示されるため、この動作がわかりません

4

1 に答える 1

1

子 DataGrid の列の 1 つに * width を追加します。

       <DataGrid.Columns>
          <DataGridTextColumn Binding="{Binding Id}" Width="Auto" IsReadOnly="True" />
          <DataGridTextColumn Binding="{Binding Publisher}" />
          <DataGridTextColumn Binding="{Binding ReleaseYear}" Width="*" />
          ...
        </DataGrid.Columns>
于 2013-10-02T10:21:11.317 に答える