0

我需要实现一个定制的列表,如下所示。您应该能够通过单击标题对给定字段上的项目进行排序。一条线也应该是可扩展的。当用户单击 + 时,该行应展开并在其 field2 值下显示更多信息。

我的需要:

我曾尝试在 GridView 中使用 ListView。对于每一列,我定义了一个模板(field1 值的模板,左侧带有 +,一个用于字段 2 值,一个用于字段 3 值)。有了这个实现,我的问题是“如何扩展一行”。

我还查看了 ListBox 组件,但我需要手动创建标题并对齐内容。我还需要手动排序。这对我来说似乎不是一个好的解决方案。

你有什么更好的主意,或者任何建议吗?

4

2 回答 2

2

正确的基础 Control 似乎是DataGrid. 它将为您提供诸如对标题进行排序等功能。

ControlTemplate如果您希望它看起来像屏幕截图中的那样,则必须通过样式对其进行修改。

作为如何获得详细扩展的灵感,以下文章可以帮助您:

WPF中DataGrid中的分组

您还可以考虑查看第三方 dataGrids,以防标准 DataGrid 无法满足您的所有需求,但使用单独的模板可以让您走得更远。

于 2013-04-09T08:43:31.800 回答
1

如果我理解正确,“扩展”是指在一行(或特别是列表视图项)下显示某事?

如果是这种情况,例如,在您的数据模板中添加一个堆栈面板,并将其可见性更改为折叠;

通过单击“+”按钮,将折叠更改为可见。

<ListView ...>
   <ItemTemplate>
       <GridView ...>
           <Button Name="ExpandButton Click="OnClick"/>
       <StackPane  Visibility={Binding SomeProperty} />
   <Itemtemplate>
</ListView>

在 Onclick 中,更改 SomeProperty=Visibility.Visible。我假设您对 WPF 中的数据绑定感到满意。

于 2013-04-09T08:28:36.247 回答