次に示す例のように、(階層データ構造に格納された) ネットワーク ツリー情報を表示できるようにしたいと考えています。
図には、多数のホスト (最上位ノード) があります。そのうちの 1 つが「マスター」と見なされるため、他の最上位ノードとは異なる方法でレンダリングされます。各ノードは、複数のサブノード (プローブ) を持つことができます。ノード間の線は接続を示しており、いずれかの接続がダウンすると、線は Hostname2 と Probe2.3 の間のように変化します。選択したノード (ホストまたはプローブ) も、異なる方法でレンダリングする必要があります。
私は Prism/MVVM を使用しており、コードをできるだけきれいに保とうとしていますが、このデータを表示する最善の方法がわかりません。
TreeView の使用を検討しましたが、ノード間のリンクを作成するクリーンな方法が思いつきません。カスタム パネルの作成も検討しましたが、それが最適かどうかわからず、どこから始めればよいかわかりません。次に、DataTemplate と HierarchicalDataTemplate を使用するとよいので、カスタム ItemsControl を作成することを考えました。また、キャンバスを含む UserControl を作成し、コード ビハインドですべてを実行することもできますが、最善の方法とは言えません。
意見、コード例、リンク、または提案をお待ちしております。