XAML を使用して、ビジネス ドメインのセマンティック モデルを形成するカスタム型のグラフを表現およびロードしようとしています。
私がやりたいことの 1 つは、ツリーのより深いオブジェクトからグラフの「ルート オブジェクト」への参照を取得できるようにすることです。ルートオブジェクトをシングルトンにするなどの野蛮な慣行に頼る以外に、これを行う簡単な方法を見つけることができません。
何か案は?
XAML を使用して、ビジネス ドメインのセマンティック モデルを形成するカスタム型のグラフを表現およびロードしようとしています。
私がやりたいことの 1 つは、ツリーのより深いオブジェクトからグラフの「ルート オブジェクト」への参照を取得できるようにすることです。ルートオブジェクトをシングルトンにするなどの野蛮な慣行に頼る以外に、これを行う簡単な方法を見つけることができません。
何か案は?
これが XAML 固有の問題であることはわかりません。XAML が行っているのは、"子" オブジェクトをインスタンス化し、それらを "親" オブジェクトのコレクション プロパティに追加することだけです。したがって、次のようなものがあるとします。
<my:Category Name="Products">
<my:Category.Subcategories>
<my:Category Name="Clothing" />
<my:Category Name="Jewellery" />
</my:Category.Subcategories>
</my:Category>
...すると、2 つのサブカテゴリを持つ「製品」カテゴリになります。サブカテゴリを追加すると、そのサブカテゴリの「所有者」への参照がどこかに保存されるように、「カテゴリ」クラスをコード化するのはあなた次第です。おそらく、カスタム コレクション タイプを使用します (Add メソッドと Remove メソッドをオーバーライドして、追加するオブジェクトの "Parent" または "Owner" プロパティを設定します)。