我不是在寻求答案,而是寻求创建更好解决方案的想法和建议。我甚至在寻找一些基本的面向对象设计理论的参考,因为我觉得这必须是一个常见的场景,但我不知道如何正确地表达它以找到可靠的搜索结果。
我提出了这个例子(我会省略代码,因为它很容易解释): 我有一个表单包含一个Treeview,一个Button和一个Textbox。我还有一个TextClass类,它有2个字符串:Text和Name。
单击按钮时:
在Treeview中单击节点时:
触发Textbox_TextChanged时:
所有这一切都很好,但似乎......马虎。我问是否有更好/正确的方法来实现这种存储和检索值的方法。如果这是一个OOP基础,我会很感激我可以搜索一些关键字。
谢谢你, 道格
答案 0 :(得分:0)
TreeNode具有属性Tag
,可用于存储与此节点关联的数据。因此,您可以为每个新创建的节点存储TextClass
个实例。这样您就不必维护额外的列表并将其与TreeNode同步。
我也不会依赖关联的显示名称:如果希望名称可以更改或者允许两个节点具有相同的名称,则会遇到问题。
另一个问题是,如果没有Tag
属性,你将如何做到这一点。然后,我将使用Dictionary将TreeNode实例映射到TextClass实例。
因此,如果我要做出一般规则: