wpf - 如何让最后一个DataGrid的列占据整个左侧空间?

标签 wpf wpfdatagrid

第一的!
我知道这似乎是一种 dup然而事实并非如此。

我有一个网格作为 DataGrid.RowDetails 的数据模板.
它有三列:两列带有 Width="Auto"和 3d 与 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 .它的外观:

enter image description here

更新 2 .

最后我找到了灵魂。刚刚添加 ScrollViewer.HorizontalScrollBarVisibility="Disabled"
现在可以了:

enter image description here

但我无法理解这种奇怪的行为。

更新 3 (可能对某人有帮助)

最近我们发现了一个我们的用户有而开发者没有的错误。该错误再次与 DataGrid 的宽度和对齐方式有关。好吧,可能这不是一个真正的错误,但我们有不同的控件行为。
研究表明,在安装 .net framework 4.5 时,安装程​​序也会更新 .net framework 4.0。此更新以某种方式改变了 DataGrid 的行为。 (到预期的)
我们要求我们的用户安装框架 4.5,问题就消失了。虽然我们的应用程序仍然针对 .net 4.0

最佳答案

最后我找到了灵魂。

刚刚添加 ScrollViewer.HorizontalScrollBarVisibility="Disabled"
对于那些以 Framework v4.0 为目标的人
最近我们发现了一个我们的用户有而开发人员没有的错误。该错误再次与 DataGrid 的宽度和对齐方式有关。好吧,可能这不是一个真正的错误,但我们有不同的控件行为。
研究表明,在安装 .net framework 4.5 时,安装程​​序也会更新 .net framework 4.0。此更新以某种方式改变了 DataGrid 的行为。 (到预期的)
我们要求我们的用户安装框架 4.5,问题就消失了。虽然我们的应用程序仍然针对 .net 4.0

关于wpf - 如何让最后一个DataGrid的列占据整个左侧空间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11956023/

相关文章:

c# - 绑定(bind)在 WPF MVVM C#​​ 中不起作用

wpf - 坚持从 DataGrid 到 ItemsSource 集合的排序

wpf - 如何使用GridViewComboBoxColumn并允许用户进行编辑?

c# - 如何将文本框的文本双向数据绑定(bind)到依赖项属性

wpf - 将 GridViewColumn 中的复选框居中?

c# - 在 WPF C# 中删除命名行

MVVM下的WPF DataGridTemplateColumn可见性绑定(bind)

c# - 从 Xbap 打开新页面

C# - 删除 WPF DataGrid 中的右边缘行边框

c# - 使用多重绑定(bind)更新源