У меня есть некоторые иерархические данные в элементе управления Winforms TreeView, и мне нужно представить его как свойство, чтобы мой докладчик мог синхронизировать изменения в нем.Просто чтобы прояснить, я использую шаблон Passive View .С большинством элементов управления WinForm это не сложно.Сами элементы управления представляют свои данные в виде системного типа, который может быть легко передан докладчику.TreeViews, из-за их сложности, не легко сопоставляются с типом системы.Я искал тип коллекции фреймворка, но дерево, похоже, было упущено.(Похоже, Microsoft использует древовидные структуры под капотом для нескольких классов более высокого уровня, но предпочла не создавать семейство классов общего назначения Tree .)
В любом случае данные, которые я пытаюсь использоватьэкспозиция никогда не бывает глубже двух узлов, поэтому я даже не уверен, что буду продолжать использовать TreeView.Тем больше причин, чтобы не связывать докладчика с TreeNodeCollection.
Я уже выдвинул несколько идей, но я просто хотел отослать их от сообщества SO:
- Представьте дерево как коллекцию коллекций ... скажем, словарь списков.
- Создайте пользовательскую древовидную структуру, вводя зависимость в представление в процессе.
ВерхУровни узлов будут в среднем 5-10 записей, в то время как их дочерние узлы теоретически могут достигать 50, но на практике не превысят 3 или 4.
Есть предложения?