![]() |
1
2
请记住,最好是使组件不受影响。您永远不希望任何控件拥有层次结构中高于自身的任何知识,也不希望任何控件只拥有层次结构中低于自身的控件的接口知识。从长远来看,这种体系结构方法将为您节省很多痛苦和痛苦,并将避免像您现在这样的情况。
至于解决当前问题,最好的解决方法是创建一个
|
![]() |
2
0
我认为这真的取决于你对控件的使用。如果控件只服务于一个业务需求,并且只在一个页面上使用以满足用例,那么就没有必要疯狂地使用接口和属性。我看不出parent.parent.parent.etc的想法有什么问题;我自己用过很多次。我会把它包在一个财产里,这样无论什么时候你需要它,你都可以叫这个。MyGreatGreatGrandFatherProperty。它将更具可读性,如果层次结构深度发生变化,您只有一个地方需要修复。
|
![]() |
3
0
@Andrew,不是要劫持我自己的线程,而是要澄清和讨论一种设计方法。您说过“您永远不希望任何控件在层次结构中拥有任何高于自身的知识……”这是一种很好的设计策略,原因显而易见。但是对于内置了某种集中式管理的包装容器,情况又如何呢?例如,在.NET中,嵌套母版页中的ScriptManager控件。您可能希望脚本管理器只创建一次,并且希望它可用于应用程序中的各种控件。例如,应用程序中任何嵌入式控件中的任何UpdatePanel都希望知道该ScriptManager的存在。这是错误的做法吗? 我的设计与此类似——最外层的包装容器管理对象持久性,每个控件都可以将其状态保存到该管理器。我现在认为包装代理是最好的设计。因为我不喜欢父母。etc,也不只是为了引用而遍历控件ID。欢迎任何意见。 |
![]() |
4
0
|
![]() |
5
-1
|
![]() |
Emopusta · 从后端到前端的图像路径不工作 2 年前 |
![]() |
Asdrubal Hernandez · Linq查询特定数组索引出错 2 年前 |
![]() |
Niyazi Babayev · 如何在表达式中动态应用表达式? 3 年前 |
|
Dansih · .Net核心自定义身份验证方案 3 年前 |
![]() |
lolorekkk · 面板插入。NET WinForm 3 年前 |