【发布时间】:2011-11-18 06:20:54
【问题描述】:
我有一个包含两列的 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>
我怀疑问题在于 ScrollViewer 中的 DataGrid。我尝试将 ScrollViewer 的宽度设置为 DataGrid 宽度:
Width="{Bidning ElementName=MyGrid, Path=ActualWidth}"
正如this post 中所建议的那样,但没有运气。我还尝试将 HorizontalScrollBarVisibility 设置为 Disabled,但随后一切都消失了(严重)。
我还应该提到所有这些都在一个 UserControl 中,它位于另一个 UserControl 中,然后位于 Window 中,这可能与所有“消失”有关(我怀疑宽度已经疯了,一切都“关闭”了窗口')。
【问题讨论】:
-
您使用的是 .Net 4.0 吗?我记得大约 2-3 周前关于同一主题的另一个帖子。我认为它被确定为 4.0 的一个错误,它在 3.5 中起作用。
-
是的,使用 .NET 4.0。如果这是重复的,如果有人能指出上一个问题,我将不胜感激。
-
我找了,没找到。查看 WPF 标签下并返回一条路径,您可能会找到它。
标签: c# wpf xaml datagrid wpfdatagrid