我正在尝试确定将自定义类的集合绑定到TreeView的最佳方法。
我目前有两个自定义类,一个保存在集合中,另一个保存在第一个类的集合内:
我正在尝试让一个“TreeView”显示设备的集合,当展开时列出其功能。
我目前有两个自定义类,一个保存在集合中,另一个保存在第一个类的集合内:
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,所以这感觉像是浪费资源)
有任何建议吗?