我希望能够显示网络树信息(存储在分层数据结构中),如下面的示例所示:
在图中,我有许多主机(顶级节点)——其中一个被认为是“主节点”,因此呈现方式与其他顶级节点不同。每个节点可以有多个子节点(探针)。节点之间的线显示连接,如果任何连接断开,则线会更改,如 Hostname2 和 Probe2.3 之间所示。选择的任何节点(主机或探测器)也应该以不同的方式呈现。
我正在使用 Prism/MVVM 并且我试图保持代码尽可能干净,但我不确定显示这些数据的最佳方式。
我考虑过使用 TreeView,但我想不出一种干净的方式来创建节点之间的链接。我也考虑过创建一个自定义面板,但我不确定这是最合适的,也不知道从哪里开始。然后我想创建一个自定义 ItemsControl,因为使用 DataTemplate 和 HierarchicalDataTemplate 会很好。我还可以创建一个包含画布的 UserControl 并在其中的代码隐藏中执行所有操作,但感觉不是最好的方法。
如果您有意见、示例代码、链接或任何建议,我将不胜感激。