好吧,无论如何这不是“最好的方法”,但我还是把它扔了。一种类似于您需要的工作方式是使用带有自定义项容器样式的ListView,该样式使用
<ContentPresenter>
而不是默认值
<GridViewRowPresenter>
. 这个简短的XAML在一定程度上说明了这一点:
<ListView>
<ListView.ItemContainerStyle>
<Style TargetType="ListViewItem">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ListViewItem">
<ContentPresenter/>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ListView.ItemContainerStyle>
<ListView.View>
<GridView>
<GridViewColumn Header="Header1"/>
<GridViewColumn Header="Header2"/>
</GridView>
</ListView.View>
<Button>Item1</Button>
<Button>Item2</Button>
</ListView>
在这里,您可以得到列标题,这些项横跨整个列表视图。然而,在这个解决方案中,项目的呈现是在一个自己的世界中进行的。它实际上没有连接到为ListView定义的列。所以我想让这项工作做得更好的一个方法是提供你自己的
<RowPresenter>
实际考虑父ListView中定义的GridViewColumns的实现。
无论如何,希望这能有所帮助。