wpf listbox / listview: сгруппированы по заголовкам, но если существует только один элемент, показывать только заголовок? - PullRequest
1 голос
/ 28 июня 2011

В основном у меня есть следующие настройки:

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

    public String SectionTitle { get; set; }

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

Прямо сейчас я могу сделать следующее (Группировать все элементы по заголовкам и показывать их задачи под ними):

  • Заголовок1
    • Section1
      1. DoX (кликабельно)
      2. DoY (кликабельно)
    • Section2
      1. DoFoo (кликабельно)
      2. DoBar (кликабельно)
  • Heading2
    • SectionX
      1. DoSomething (Clickable)
    • SectionY
      1. DoSomethingElse (кликабельно)
  • Заголовок3
    • SpecialSection
      1. AccessSpecialSection (кликабельно)

То, чего я пытаюсь добиться, - это сократить этот список:

  • Heading1
    • Section1
      1. DoX
      2. DoY
    • Section2
      1. DoFoo
      2. DoBar
  • Заголовок2
    • SectionX (DoSomethingскрыт внутри - теперь SectionX доступен для нажатия)
    • SectionY (DoSomethingElse скрыт внутри - теперь можно нажимать на SectionY)
  • Heading3 (SpecialSection / AccessSpecialSection скрыт внутри этого- Теперь в заголовок 3 можно нажимать)

Не уверен, есть ли простой способ сделать это?


У меня такое чувство, что потребуется какой-то тип шаблонов?там, где есть 4 возможности:
  • ЕСЛИ В ОДНОМ РАЗДЕЛЕ существует ОДИН РАЗДЕЛ И В РАЗДЕЛЕ существует ОДНА ЗАДАЧА => Заголовок получает привязку команды
  • ЕСЛИ В заголовке ИМЕЕТ ОДИН РАЗДЕЛ2+ ЗАДАЧИ существуют в разделе => Показать заголовок / скрыть раздел, и ЗАДАЧИ получают привязку команды
  • ЕСЛИ 2+ СЕКЦИИ существуют в заголовке, а ОДНА ЗАДАЧА существует в разделе => Показать заголовок / Показать раздел /Скройте ЗАДАЧУ и дайте Секции привязку команды
  • ЕСЛИ 2+ СЕКЦИИ существуют в Заголовке и 2+ ЗАДАЧИ существуют в Разделе => Показать все и продолжайте как обычно (ЗАДАЧИ получают привязку команды).
...