DataGrid WPF 中的 DataGridTemplateColumn 列跨度

mam*_*mur 6 c# wpf datagrid

我正在制作 UI,如下图所示。

数据网格 它是一个DataGrid,Itemsource绑定到一个List。我无法ColumnSpan设置TextBox. 首先,我尝试使用 aUserControl但无法修复 DataGridTemplateColumn 标题,然后尝试使用 DataGridTemplateColumn.CellTemplate 但无法设置ColumnSpan.

有什么方法/方法可以制作这种数据网格吗?

先感谢您。

jHi*_*her 3

没有ColumnSpanDataGrid就像正常的一样Grid

要获得这种布局,您有 3 种选择,不幸的是,所有选择都有很大的缺点。

1 合并单元格

使用合并事件在代码后面将单元格合并在一起。请参阅此处的指南这需要大量编码背后的代码才能使您的布局正确。所以我真的建议不要这样做。

2 行详细信息

使用内置的RowDetails. 这不会得到与您的布局完全一样的布局,但它是最简单且最接近您的要求的内置功能。

它看起来像这样:

行模板

很容易配置:RowDetailsVisibilityMode="Visible"在 DataGrid XAML 中设置:。并为该行定义模板:

<DataGrid.RowDetailsTemplate>
    <DataTemplate>
        <TextBlock Text="{Binding Desc}" Background="LightGray"/>
    </DataTemplate>
</DataGrid.RowDetailsTemplate>
Run Code Online (Sandbox Code Playgroud)

[+]所有 DataGrid 功能都可以使用:排序、添加行、调整大小......

[-]详细信息部分跨越整行。

请参阅本教程,了解如何处理行详细信息。

3 一起破解一些东西

带有模板和代码。一些可能对您有帮助的资源: