第一! 我知道它看起来似乎是一种dup,但事实并非如此。
我有一个网格作为DataGrid.RowDetails
的数据模板。
它有三列:两列Width="Auto"
和三维Width="*"
<DataTemplate x:Key="NotEmptyDistributionsTemplateKey">
<DataGrid ItemsSource="{Binding SoftwareVersionDistributions}"
CanUserAddRows="False"
CanUserDeleteRows="False"
CanUserReorderColumns="False"
CanUserResizeColumns="True"
CanUserSortColumns="False"
IsReadOnly="True"
CanUserResizeRows="False"
AutoGenerateColumns="False"
RowHeaderWidth="0"
Margin="20,5"
HorizontalAlignment="Stretch">
<DataGrid.Columns>
<DataGridTextColumn
Header="Architecture"
Binding="{Binding SoftwareArchitecture.Name, TargetNullValue=Все, FallbackValue=Все}"
Width="Auto"/>
<DataGridTextColumn
Header="Language"
Binding="{Binding SysCodepage.Title, TargetNullValue=Все, FallbackValue=Все}"
Width="Auto"/>
<DataGridHyperlinkColumn
Header="Link"
Binding="{Binding DownloadLink}"
Width="*"
CanUserResize="False"/>
</DataGrid.Columns>
</DataGrid>
</DataTemplate>
如果Grid嵌套在单元格中,此模板正好显示3列。
但是当它被用作RowDetaislTemplate
时出现第4个空列。
这让我很生气。
有没有人知道为什么会发生这种情况?
更新1 。看起来如何:
更新2 。
最后我找到了灵魂。刚刚添加了ScrollViewer.HorizontalScrollBarVisibility="Disabled"
现在没关系:
但我无法理解这种奇怪的行为。
更新3 (可能对某人有帮助)
最近我们发现了一个用户拥有的错误,开发人员没有。该错误再次涉及DataGrid的宽度和对齐方式。好吧,可能这不是一个真正的错误,但我们有不同的控制行为
研究表明,安装.net framework 4.5安装程序时还更新了.net framework 4.0。此更新以某种方式改变了DataGrid的行为。 (对预期的一个)
我们要求用户安装框架4.5,问题消失了。虽然我们的应用仍然针对.net 4.0
答案 0 :(得分:6)
最后我找到了灵魂。
刚刚添加了ScrollViewer.HorizontalScrollBarVisibility="Disabled"
对于那些以Framework v4.0为目标的人 最近我们发现了一个用户有错误而开发人员没有的错误。该错误再次涉及DataGrid的宽度和对齐方式。好吧,可能这不是一个真正的错误,但我们有不同的控件行为。 研究表明,安装.net framework 4.5安装程序时还更新了.net framework 4.0。此更新以某种方式改变了DataGrid的行为。 (到预期的一个) 我们要求用户安装框架4.5,问题就消失了。虽然我们的应用仍然针对.net 4.0