我有一个包含UserControl项的ListBox。具体的UserControl中包含了DataGrid等内容。基本上,我不能更改具体的UserControl(只为测试目的进行更改; 它类似于第三方组件)。当设置一个列宽为“*”以填充整个空间时,所有列的DataGrid列宽都会被破坏。
我可以用一个简化的示例来重现这个问题(不使用UserControl)。因此,如果我将DataGrid作为ListBoxItem添加,并指定一个列宽为“*”,则会破坏列宽。顺便说一下,用户也无法再调整列的大小。
简化示例:
我可以用一个简化的示例来重现这个问题(不使用UserControl)。因此,如果我将DataGrid作为ListBoxItem添加,并指定一个列宽为“*”,则会破坏列宽。顺便说一下,用户也无法再调整列的大小。
简化示例:
<Window x:Class="DataGridSpike.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid>
<ListBox HorizontalContentAlignment="Stretch" >
<!-- Column width is basically ok but only since not "*" -->
<DataGrid>
<DataGrid.Columns>
<DataGridTextColumn Header="Column1"/>
<DataGridTextColumn Header="Column2"/>
<DataGridTextColumn Header="Column3"/>
</DataGrid.Columns>
</DataGrid>
<!-- Broken column width: -->
<DataGrid>
<DataGrid.Columns>
<DataGridTextColumn Header="Column1"/>
<DataGridTextColumn Header="Column2" Width="*"/>
<DataGridTextColumn Header="Column3"/>
</DataGrid.Columns>
</DataGrid>
</ListBox>
</Grid>
有人知道如何修复这个问题吗?
谢谢!