ItemTemplate として Expander 内に DataGrid を持つ ItemsControl があります。
<Grid>
<ScrollViewer HorizontalScrollBarVisibility="Auto"
VerticalScrollBarVisibility="Auto">
<ItemsControl ItemsSource="{Binding SomeItemSource}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Expander>
<Grid>
<DataGrid ItemsSource="{Binding SomeItemSource}"
ScrollViewer.CanContentScroll="True"
ScrollViewer.VerticalScrollBarVisibility="Auto"
ScrollViewer.HorizontalScrollBarVisibility="Auto"
MaxHeight="200">
</DataGrid>
</Grid>
</Expander>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</ScrollViewer>
</Grid>
DataGrid ごとに ScrollViewer が必要であり、エキスパンダーが多すぎる場合はエキスパンダーのリスト用に 1 つ必要です。私の問題は、DataGrid の MaxHeight プロパティを設定した場合にのみ機能することです。たとえば、ItemsControl にエントリが 1 つしかない場合、高さが制限されているため、エントリがスペース全体を使用していないため、これは面倒です。
誰にもアイデアはありますか?