我正在制作 UI,如下图所示。
它是一个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
中的构建。这不会获得与您的完全相同的布局,但它是最简单和最接近您的要求的内置功能。
它看起来像这样:
很容易配置:
设置: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 一起破解一些东西
带有模板和代码。一些可能对您有帮助的资源:
关于c# - DataGrid WPF 中的 DataGridTemplateColumn 列跨度,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39071767/