Wpf 使DataGrid单元格跨越多列

Wpf 使DataGrid单元格跨越多列,wpf,datagrid,Wpf,Datagrid,我提到了这个,但它不起作用。列仍然扩展到行内容。当单元格重新排列时,列大小会以某种方式更新 截图: 我的自定义DataGridCellsPanel.ArrangeOverride: protected override Size ArrangeOverride(Size arrangeSize) { var firstCell = Children[0]; firstCell.SetValue(Panel.HorizontalAlignmentProperty, Horizont

我提到了这个,但它不起作用。列仍然扩展到行内容。当单元格重新排列时,列大小会以某种方式更新

截图:

我的自定义
DataGridCellsPanel.ArrangeOverride

protected override Size ArrangeOverride(Size arrangeSize)
{
    var firstCell = Children[0];
    firstCell.SetValue(Panel.HorizontalAlignmentProperty, HorizontalAlignment.Left);
    firstCell.Arrange(new Rect(arrangeSize));

    for (int i = 1; i < Children.Count; i++)
    {
        var remainingCell = Children[i];
        remainingCell.Arrange(new Rect(0,0,0,0));
    }
    return arrangeSize;
}
请帮助。

找到问题。:)


将ColumnWidth设置为Auto是罪魁祸首。将其设置为静态值效果很好。

在屏幕截图中无法真正判断是否跨越多个列;它是否在该示例中起作用;这将有助于展示你所拥有的以及你下次要做的事情。你的废话使这个问题令人困惑。这看起来像是
DataGrid
及其RowDetails功能的一个主要示例。
<Style x:Key="SpanRowStyle" TargetType="DataGridRow">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="{x:Type DataGridRow}">
                <Border>
                    <DataGridCellsPresenter Foreground="Black">
                        <DataGridCellsPresenter.ItemsPanel>
                            <ItemsPanelTemplate>
                                <controls:DataGridSpannedCellPanel/>
                            </ItemsPanelTemplate>
                        </DataGridCellsPresenter.ItemsPanel>
                    </DataGridCellsPresenter>
                </Border>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>