Binden einer Sammlung benutzerdefinierter Klassen an TreeView

Ich versuche herauszufinden, wie eine Sammlung einer benutzerdefinierten Klasse am besten an eine TreeView gebunden werden kann.

Ich habe derzeit zwei benutzerdefinierte Klassen, eine in einer Sammlung und eine in einer Sammlung innerhalb der ersten Klasse:

Collection<Device> _devices = new Collection<Device>();

class Device
{
    public ulong DeviceID { get; private set; }

    private List<Capability> _capabilities = new List<Capability>();

    public string FriendlyName{ get; set; }

    public Capability AddCapability(Capability capability)
    {
        _capabilities.Add(capability);
        return capability;
    }

   public List<Capability> GetCapabilities()
   {
       // not safe yet
       return _capabilities;
   }
}

abstract class Capability
{
    public uint CapabilityIndex { get; private set; }
    public string FriendlyName{ get; set; }
}

Ich versuche eine zu bekommenTreeView um die Sammlung von Geräten anzuzeigen, in denen die Funktionen aufgelistet sind, wenn sie erweitert sind.

Zu den Optionen, die ich in Betracht gezogen habe, gehören:

Durchlaufen und Erstellen von TreeNode-Objekten aus den Daten, die ich anzeigen möchte (ich bin mir jedoch nicht sicher, wie ich bei Auswahl am besten auf das ursprüngliche Objekt zurückgreifen soll)Erben von der TreeNode-Klasse, aber das fühlt sich hässlich an, da ich dieselben Daten an mehreren Orten speichere (und die meiste Zeit brauche ich sie nicht als TreeNodes, so dass es sich wie eine Verschwendung von Ressourcen anfühlt)

Irgendwelche Vorschläge?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage