DataGridTemplateColumn

DataGridTemplateColumn

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

c# - DataGrid WPF 中的 DataGridTemplateColumn 列跨度-LMLPHP
它是一个DataGrid,Itemsource 绑定(bind)到一个List。我无法为 ColumnSpan 设置 TextBox 。首先,我用 UserControl 尝试了它,但我无法修复 DataGridTemplateColumn Header,然后我尝试了 DataGridTemplateColumn.CellTemplate 但无法设置 ColumnSpan

有没有办法/方法来制作这种Datagrid?

先感谢您。

最佳答案

ColumnSpan 中没有 DataGrid ,就像普通的 Grid 一样。

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

1 合并单元格

使用合并事件在后面的代码中将单元格合并在一起。 See a guide to this here 这需要大量的代码
编码以使您的布局正确。所以我真的会建议
反对这一点。

2 行详细信息

使用 RowDetails 中的构建。这不会获得与您的完全相同的布局,但它是最简单和最接近您的要求的内置功能。

它看起来像这样:

c# - DataGrid WPF 中的 DataGridTemplateColumn 列跨度-LMLPHP

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

<DataGrid.RowDetailsTemplate>
    <DataTemplate>
        <TextBlock Text="{Binding Desc}" Background="LightGray"/>
    </DataTemplate>
</DataGrid.RowDetailsTemplate>
[+] 所有 DataGrid 函数都可以使用:排序、添加行、调整大小...
[-] 详细信息部分跨越整行。

this tutorial about what you can do with row details.

3 一起破解一些东西

带有模板和代码。一些可能对您有帮助的资源:
  • Override Row Template
  • Build a custom cell template
  • DataGrid in general
  • 关于c# - DataGrid WPF 中的 DataGridTemplateColumn 列跨度,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39071767/

    10-12 02:27