カスタムクラスのコレクションをTreeViewにバインドするための最良の方法を決定しようとしています。
現在、2つのカスタムクラスがあります。1つはコレクションで開催され、もう1つはファーストクラス内のコレクションで開催されます。
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クラスから継承しますが、同じデータを複数の場所に保存しているため、これは醜い感じがします(ほとんどの場合、TreeNodeとしてそれらを必要としないため、リソースの浪費のように感じます)
助言がありますか?