例如主窗体(frmMain)里有个函数: 在用户控件(usercontrol_Test)里怎么访问主窗体(frmMain)里定义的函数或者主窗体里的控件? 但在WPF里这样写不行,在WPF里要怎么才能访问呢?求高手! |
|
30分 |
WPF里面有一个Owner属性,你去看看
|
70分 |
高手绝对不会做这种设计的。 |
汗,我当然知道公共方法写在公共类。我之所以要让用户控件去访问主窗体的函数,是因为想在用户控件去调用主窗体的函数去设置主窗体的控件。意思即是用户控件里的按钮点击之后就设置主窗体里的控件隐藏或者显示,难道这样的设计不正常 而且我标题说了又或者是用户控件怎么访问主窗体的控件,难道不会有这种设计?? |
|
用户控件里的文本的鼠标左键点击事件: |
|
你做控件的时候会明确知道自己放到哪个窗体上吗?如果知道的话为什么不直接把控件的内容写到窗体了,封装的意义在于独立和复用,而不是为了给代码分块。
|
|
是的,这个用户控件只是在主窗体很多地方用到,所以就做了这个用户控件方便给主窗体调用而已。其实归根到底我只是想知道动态添加的用户控件要如何才能访问主窗体的控件而已,如果这样都做不到的话,那封装的用户控件有什么意义?其实我是封装一个固定窗体中常用到的用户控件而减少代码量,而不是做一个所有窗体或者所有程序都通用的控件! |
|
基本的设计原则就是高内聚低耦合。
如果你的控件和窗体的联系这么紧密,那么其实他们就应该属于一体,这种情况下就可以把控件和窗体看成一个整体,由此得出的推论就是控件可以依赖并且必须依赖窗体,所以,你可以把窗体实例传到控件里面,直接调用就可以了。 |
|
受到启发,发现只要逐层向上即可: |