Wpf 具有分组标题/列的网格(超级标题)

Wpf 具有分组标题/列的网格(超级标题),wpf,Wpf,我希望实现以下目标: Day 1 | Day 2 --------------------------------------| ------------------------------------- Location 1 | Location 2 | Location 3 | Location 1 | Location 2 | Location 3 ---------- | ----------

我希望实现以下目标:

               Day 1                  |                Day 2
--------------------------------------| -------------------------------------
Location 1 | Location 2 | Location 3  | Location 1 | Location 2 | Location 3
---------- | ---------- | ----------- | ---------- | ---------- | -----------
           |            |             |            |            |           
-----------------------------------------------------------------------------
           |            |             |            |            |           
-----------------------------------------------------------------------------
           |            |             |            |            |           
-----------------------------------------------------------------------------
           |            |             |            |            |           
-----------------------------------------------------------------------------
我需要显示特定日期的约会/事件列表,但按位置分组

我想显示日期和地点,即使在没有事件的情况下,也只显示空网格,这样我就可以在那里添加我自己的事件

我计划使用DataGrid或ListBox/ListView。这是个好主意还是我应该用其他方法创建这些标题?你能给我指一下正确的方向吗

这个问题只是关于显示空网格多个ListView或datagrid,其标题由位置列表和日期列表生成:

public IObservableCollection<DateTime> DaysToDisplay { get; set; }
public IObservableCollection<string> LocationsToDisplay { get; set; }

你的编辑说的话让我有点困惑:

这个问题只是关于显示由位置列表和日期列表生成的空网格

因为这与:

我需要显示特定日期的约会/事件列表

但你一直在编辑你的问题,其中一个不可能是真的

WPF datagrid最适合于编辑,如果您所说的添加我自己的事件就是这个意思的话。尽管直接在datagrid中编辑会引入很多边缘情况,如果您要验证的话

datagrid不支持这样的分组头

您可以采用的所有解决方案都有一些局限性

一种方法是创建Days模板列。然后,在同一个模板中排列其中的3个位置

动态构建这些重复柱的一种方法:

另一个选项是2个数据网格。 最上面的一个只有标题-这些是天。 主数据网格位于该网格下方,在同一网格中,位置为该网格中的列。 如果用户不能调整列的大小和重新排列列的顺序,这种方法效果最好。 重新调整大小可以通过使用转换器绑定日列的宽度来处理,该转换器将相应日列的宽度相加

例如:


我同意我不是很清楚。非常感谢你的回答。空数据网格有什么意义?它不会做任何事,也不会显示任何东西。每个单元格中都需要一个按钮或其他东西。@Andy是的,我想在每列中显示空行/单元格-这将映射到时间跨度列表。@Andy因此,当您单击单元格/行时,它将显示:时间跨度,位置和日期。单元格中会有一个按钮。我目前正在水平堆栈面板中使用多个列表视图,但我需要对其进行分组。