gpt4 book ai didi

wpf - 在 WPF 网格/列表中跨越多列的最佳方法?

转载 作者:行者123 更新时间:2023-12-04 15:37:28 28 4
gpt4 key购买 nike

我有一个用 WPF 编写的自定义用户控件来显示一些数据。我想在列表中显示此用户控件,但我还想提供多个列标题(匹配用户控件上的某些属性),以便用户可以对用户控件中包含的属性进行排序。

我不确定解决这个问题的最佳方法。

我目前有一个显示这些用户控件的 ListBox,但 ListBox 没有标题,我无法弄清楚如何在 ListBox 上放置多个标题。

理想情况下,我想要这样的东西:

Header1   Header2  Header3   Header4
[UserControlThatSpansAllFourColumns]

我的另一个想法是使用 DataGrid 并以某种方式让每个项目跨越多个列,但到目前为止我也无法弄清楚。

如果有人有任何提示,我会欢迎他们!

最佳答案

好吧,这在任何情况下都不是“最好的方法”,但我只是把它扔进去。一种像您需要的那样工作的方法是使用 ListView 和使用 <ContentPresenter> 的自定义 ItemContainerStyle|。而不是默认 <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 。然而,在这个解决方案中,项目的渲染有点像它自己的世界。它并没有真正连接到为 ListView 定义的列。所以我想使这项工作更好的一种方法是提供您自己的 <RowPresenter>实际上考虑了父 ListView 中定义的 GridViewColumns 的实现。

无论如何,希望这会有所帮助。

关于wpf - 在 WPF 网格/列表中跨越多列的最佳方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3790117/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com