wpf listbox/listview :按标题分组,但如果只有一项存在,则仅显示标题?

发布于 2024-11-17 17:09:56 字数 1425 浏览 3 评论 0原文

基本上我有以下设置:

public class Sections
{
    public String Heading { get; set; }

    public String SectionTitle { get; set; }

    public ICollection<MyTask> Tasks { get; set; }
}

现在我可以执行以下操作(按标题对所有项目进行分组并在其下显示其任务):

  • Heading1
    • 第 1 节
      1. DoX(可点击)
      2. DoY(可点击)
    • 第 2 节
      1. DoFoo(可点击)
      2. DoBar(可点击)
  • 标题2
    • 第 X 节
      1. DoSomething(可点击)
    • Y 部分
      1. DoSomethingElse(可点击)
  • 标题3
    • 特殊部分
      1. AccessSpecialSection(可点击)

我想要实现的是压缩此列表:

  • Heading1
    • 第 1 节
      1. DoX
      2. 是吗
    • 第 2 节
      1. 杜福
      2. 多巴
  • 标题2
    • SectionX(DoSomething 隐藏在其中 - 现在,SectionX 是可点击的)
    • SectionY(DoSomethingElse 隐藏在其中 - 现在,SectionY 可点击)
  • Heading3(SpecialSection / AccessSpecialSection 隐藏在此 - 现在 Heading3 是可点击的)

不确定是否有一个简单的方法来做到这一点?


I have a feeling it will require some type of templating? where there are 4 possibilities:

  • 如果标题中存在一个部分并且该部分中存在一个任务 => 如果标题中存在一个部分并且该部分中存在 2 个以上任务,则标题获取命令绑定
  • =>显示标题/隐藏部分并且任务获取命令绑定
  • 如果标题中存在 2 个以上的部分并且部分中存在一个任务 =>显示标题/显示部分/隐藏任务并向部分提供命令绑定
  • 如果标题中存在 2+ 部分并且部分中存在 2+ 任务=>显示全部并正常继续(TASKS 获取命令绑定)。

Basically I have the following setup:

public class Sections
{
    public String Heading { get; set; }

    public String SectionTitle { get; set; }

    public ICollection<MyTask> Tasks { get; set; }
}

Right now I can do the following (Group all items by header and show their tasks under them):

  • Heading1
    • Section1
      1. DoX (Clickable)
      2. DoY (Clickable)
    • Section2
      1. DoFoo (Clickable)
      2. DoBar (Clickable)
  • Heading2
    • SectionX
      1. DoSomething (Clickable)
    • SectionY
      1. DoSomethingElse (Clickable)
  • Heading3
    • SpecialSection
      1. AccessSpecialSection (Clickable)

What I'm trying to achieve is to condense this list down:

  • Heading1
    • Section1
      1. DoX
      2. DoY
    • Section2
      1. DoFoo
      2. DoBar
  • Heading2
    • SectionX (DoSomething is hidden within this - Now SectionX is Clickable)
    • SectionY (DoSomethingElse is hidden within this - Now SectionY is Clickable)
  • Heading3 (SpecialSection / AccessSpecialSection is hidden within this - Now Heading3 is Clickable)

Not sure if there is an easy way to do this?


I have a feeling it will require some type of templating? where there are 4 possibilities:

  • IF ONE SECTION exists in the Heading AND ONE TASK exists in the Section => Heading gets the command binding
  • IF ONE SECTION exists in the Heading AND 2+ TASKS exist in the Section => Show Heading / Hide Section and the TASKS get the command binding
  • IF 2+ SECTIONS exist in the Heading and ONE TASK exists in the Section => Show Heading / Show Section / Hide the TASK and give the Section the command binding
  • IF 2+ SECTIONS exist in the Heading and 2+ TASKS exist in the Section => Show all and proceed as normal (TASKS get the command binding).

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文