У меня есть WPF DataGrid с двумя столбцами; Я хочу, чтобы второй столбец автоматически подгонял сетку, поэтому я установил ее ширину на «*». Однако во время выполнения DataGrid изменяет размеры до смешной ширины.
Вот моя основная разметка с удаленными (я думаю) посторонними элементами управления и атрибутами:
<Grid>
<ScrollViewer HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto">
<Grid>
<StackPanel>
<DataGrid Name="MyGrid" AutoGenerateColumns="False"
CanUserAddRows="False" CanUserReorderColumns="False"
CanUserResizeColumns="False">
<DataGrid.Columns>
<DataGridTextColumn Header="Column 1" Width="Auto" Binding="{Binding Field1}"/>
<DataGridTextColumn Header="Column 2" Width="*" Binding="{Binding Field2}"/>
</DataGrid.Columns>
</DataGrid>
</StackPanel>
</Grid>
</ScrollViewer>
</Grid>
Я подозреваю, что проблема заключается в том, что DataGrid находится в ScrollViewer. Я попытался установить ширину ScrollViewer на ширину DataGrid:
Width="{Bidning ElementName=MyGrid, Path=ActualWidth}"
как предложено в этом посте , но не повезло. Я также попытался установить для параметра HorizontalScrollBarVisibility значение Отключено, но затем все исчезает (серьезно).
Я должен также упомянуть, что все это находится в UserControl, который находится в другом UserControl, который затем находится в Window, который, вероятно, как-то связан со всем, что «исчезает» (я подозреваю, что ширина сходит с ума, и все «с окно ").