【问题标题】:WPF ListView Grouping - with a twistWPF ListView 分组 - 有一个转折
【发布时间】:2011-03-15 22:42:08
【问题描述】:

我现在有一个带有模板选择器的树视图。基本上,根上的每个树节点都是某种类型数据的“类别”,并且这些数据下的每个子节点都以特定方式显示(通过模板选择器)。

这使我可以仅使用绑定轻松地在单个控件中显示不同的数据。我的问题是它在视觉上效果不佳。我想在每个根节点下都有一个网格样式(ListView.GridView)。

我正在查看 ListView 分组,但是否可以为每个组定义不同的列?既然我怀疑这是可能的,有哪些选择?我想让用户像树视图一样展开和折叠组,但在每个节点下看到一个带有滚动条等的 GridView。

【问题讨论】:

    标签: wpf


    【解决方案1】:

    我认为 ListView 不支持组中的不同标题。它只是对行进行分组。看起来您将不得不在每个树节点下创建一个新的 ListView。您可以尝试使用数据网格。在 WinForms 中,您可以绑定到多个表格,并且网格将按可以展开和折叠的表格分组,这实际上会显示不同的列。如果您使用的是 MVVM(我假设一些集合或层次模型),我不知道您将如何使用数据网格来实现这一点。

    【讨论】:

    • 没有足够的答案,所以我想你是正确的,这就是我正在做的。也许我需要重新考虑设计。
    【解决方案2】:

    如果您采用MVVM architecture,您可以相对简单地实现您想要的。

    树上的每个节点都属于某种类型(ViewModel)。每种数据类型都将绑定到特定的视图。每个 View 都可以是一个 ListView,其中包含您想要的任何列。

    我建议您阅读 MVVM 并采用它以实现您的需求。我发现采用 MVVM 会导致应用程序具有更简洁的架构和代码。

    【讨论】:

    • 我已经在使用 MVVM 并且我已经在使用您建议的技术来渲染我当前的树,因此是模板选择器。
    • 如果您对每种类型的节点都有不同的视图,您可以将每个节点呈现为具有所需列数的不同 ListView。
    猜你喜欢
    • 1970-01-01
    • 2015-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多