У меня есть хеш со значениями, которые составляют следующую структуру:
string type1_name -> Hash(
string name_member -> DataStruct,
string name_member -> DataStruct,
string name_member -> DataStruct,
string name_member -> DataStruct
),
string type2_name -> Hash(
string name_member -> DataStruct,
string name_member -> DataStruct,
string name_member -> DataStruct,
string name_member -> DataStruct
),
/// etc
проблема в том, что у меня есть 3 представления: 2 TreeView (расширенное фактическое дерево, показывающее все столбцы в иерархическом порядке и краткое, как ListStore, показывающее только значок типа и имя DataStruct, эти представления принадлежат разным родителям и могут отображаться одновременно) и 1 ListView со значком представления тех же данных. ATM У меня есть данные управления классом (проверки, сериализация, десериализация, ...) и 3 модели для каждого из этих представлений, поэтому каждый раз, когда я обновляю / удаляю / создаю элемент, я должен обновлять все 3 модели, и это выглядит не очень хорошо :(
Я думал о создании класса, реализующего Gtk.TreeModel и предоставляющего общий источник данных, который можно использовать в качестве модели для всех трех представлений, но я не могу найти никакой документации о том, как реализовать gtk.TreeModel. Я попытался просмотреть GtkListStore (встроенная реализация C), и я вижу, что он переопределяет действительно множество методов. Нет более простого способа?