当前位置:  开发笔记 > 编程语言 > 正文

从Child用户控件获取父用户控件中的属性值

如何解决《从Child用户控件获取父用户控件中的属性值》经验,为你挑选了1个好方法。

我有一个在ParentUserControl中加载的ChildUserControl.主机页面加载ParentUserControl.

我需要从ChildUserControl访问ParentUserControl中的属性.

谢谢你的时间



1> Marc Gravell..:

平台/语言等不清楚,所以这个答案必然含糊不清......但是,一般来说,子控件无法从父(直接)访问属性,因为许多不同类型的父控件可以托管儿童控制.不应将孩子硬编码为单亲,否则也可能是父母的一部分.

通常,您可能想要尝试简单地删除要求 - 这听起来像一个奇怪的设计.然而,一些框架支持的东西这样-例如,依赖属性在WPF.

基于接口的设计(对于父(s))是一种方法,但这不是很干净.对于.NET,事件等是孩子与父母交流的另一种常见方式 - 孩子暴露不同父母可以以不同方式消费的事件.

除此之外,您将进入测试/转换父级(针对类或接口)以访问父级的详细信息 - 例如:

ParentControlType parent = this.Parent as ParentControlType;
if(parent != null) {
    // access properties etc of "parent"
}

(也可以在这里使用界面;无论哪种方式还是有点hacky ......)

就个人而言,我宁愿父母控制,也不愿使用这种类型的儿童演员.父设置子项的属性,并侦听事件(而不是父项上的子设置属性):

// in the parent
child.SomeProperty = 132;
child.SomePropertyChangd += delegate {
    // do something at the parent
};

这样,孩子不知道或不关心父母.它只知道它有属性(等),并可以通知其他人有趣的变化.

推荐阅读
php
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有