DataGrid中的DataGridTemplateColumn列跨度WPF

时间:2016-08-22 05:11:27

标签: c# wpf datagrid

我正在制作用户界面,如下图所示。

DataGrid 它是一个DataGrid,Itemsource绑定到List。我无法为ColumnSpan设置TextBox。首先,我尝试使用UserControl但我无法修复DataGridTemplateColumn Header,然后我尝试了DataGridTemplateColumn.CellTemplate但无法设置ColumnSpan

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

提前谢谢。

2 个答案:

答案 0 :(得分:1)

ColumnSpan中没有DataGrid,与普通Grid一样。

要获得这种布局,你有3个选择,遗憾的是都有很多缺点。

1合并单元格

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

2 RowDetails

使用RowDetails中的内置版本。这不会使您的布局与您的布局完全相同,但它是最符合您要求的最简单和最接近的版本。

看起来像这样:

Row Template

配置简单: 在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一起黑客攻击

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

答案 1 :(得分:0)

我使用Grids,List和UserControl来提供其他解决方案。以一种简单的方式,我做了如下: enter image description here