我正在尝试确定将自定义类的集合绑定到 TreeView 的最佳方法。
我目前有两个自定义类,一个保存在 Collection 中,一个保存在第一个类中的 Collection 中:
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; }
}
我正在尝试TreeView
显示设备的集合,这些设备在展开时会列出功能。
我考虑过的选项包括:
- 循环并从我要显示的数据中创建 TreeNode 对象(但我不确定在选择时如何最好地引用原始对象)
- 从 TreeNode 类继承,但这感觉很难看,因为我将相同的数据存储在多个地方(而且大多数时候我不需要它们作为 TreeNodes,所以感觉像是在浪费资源)
有什么建议么?