我需要实现如下定制的列表。您应该能够通过单击标题对给定字段上的项目进行排序。 一条线也应该是可扩展的。当用户点击+时,该行应展开并在其field2值下披露更多信息。
我曾尝试在GridView中使用ListView。对于每一列,我已经定义了一个模板(field1值的模板,左边是+,一个是字段2值,一个是字段3值)。通过这个实现,我的问题是“如何扩展一行”。
我还查看了ListBox组件,但我需要手动创建标头并对齐内容。我还需要手动排序。这对我来说似乎不是一个好的解决方案。
你有更好的想法或任何建议吗?
答案 0 :(得分:2)
正确的基本控件似乎是DataGrid
。
它将为您提供诸如标题排序等功能。
如果您希望它在屏幕截图中显示,则必须通过样式修改其ControlTemplate
。
作为灵感来说,您可以如何进行细节扩展,以下文章可以帮助您:
您还可以考虑查看第三方dataGrids,以防标准DataGrid无法满足您的所有需求,但使用单独的Templating,您可以获得相当远的目标。
答案 1 :(得分:1)
如果我理解正确,通过“展开”你的意思是在一条线下(或者特别是一个列表视图项)显示?
如果是这种情况,请在数据模板中添加一个stackpanel,并将其Visibility更改为collaped;
点击“+”按钮,将拼贴更改为可见。
<ListView ...>
<ItemTemplate>
<GridView ...>
<Button Name="ExpandButton Click="OnClick"/>
<StackPane Visibility={Binding SomeProperty} />
<Itemtemplate>
</ListView>
在Onclick中,更改SomeProperty = Visibility.Visible。我假设您对WPF中的数据绑定感到满意。