次の構造に組み込まれる値を持つハッシュがあります。
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 つの TreeViews (すべての列を階層的に表示する拡張された実際のツリーと、タイプ アイコンと DataStruct の名前のみを表示する ListStore のように簡単なもの、これらのビューは異なる親によって所有されており、同時に表示される可能性があります) と 1 つ同じデータをアイコンで表現した ListView。ATM データ (検証、シリアライゼーション、デシリアライゼーションなど) を管理するクラスと、これらのビューごとに 3 つのモデルがあるため、アイテムを更新/削除/作成するたびに、3 つのモデルすべてを更新する必要があり、見栄えがよくありません。 :(
私が考えたのは、Gtk.TreeModel を実装するクラスを作成し、3 つのビューすべてのモデルとして使用できる共通のデータ ソースを提供することですが、gtk.TreeModel の実装方法に関するドキュメントが見つかりません。私は GtkListStore (ネイティブ C 実装) を調べてみましたが、本当に多くのメソッドを再実装していることがわかります。もっと簡単な方法はありませんか?