【问题标题】:Bind new property value of a custom control with a property of its parent class将自定义控件的新属性值与其父类的属性绑定
【发布时间】:2014-09-21 23:34:19
【问题描述】:
(VB.NET VS2010) 我在几个项目中使用继承了基本系统控件的自定义控件库(称为 A 控件),现在我想使用第 3 方库的组件(称为 B-控件)并且为了在我的项目中轻松集成此组件,我想创建另一个自定义组件库(称为 C-Controls),它继承 B-Controls 但具有 A-Controls 的相同属性(类和属性的相同名称),目标只是在我的项目中更改库引用。
我的问题是,B-Controls 有一个类似于 A1-property 的 B1-property,所以在我的 C-controls 中,我有一个直接继承 B-Controls 控件的组件,我添加了类似的 A1-具有相同名称的属性,所以我在 C-Controls 中有控件 B1-Property 和 A1-property,我想在它们更改时同步它们的值。
有可能吗?是否可以不修改每个控件的事件?
解释可能是一团糟……如果需要,我会补充更多。
提前致谢。
- A-Control-Component(继承系统组件)
- B 控制组件
- C-Control-Component(继承第 3 方库)其实它的名字也是 A-Control-Component
- B1-属性(通过继承)
- A1-Property(与 B1-Property 类似)
【问题讨论】:
标签:
.net
vb.net
visual-studio-2010
inheritance
【解决方案1】:
好的,如果我以任何方式正确理解您,您可以使用属性的 Get/Set 方法通过使用单个后端变量来同步它们
Private _MyValue As Integer
Public Property A1Property As Integer
Get
Return _MyValue
End Get
Set(value As Integer)
_MyValue = value
End Set
End Property
Public Property B1Property As Integer
Get
Return _MyValue
End Get
Set(value As Integer)
_MyValue = value
End Set
End Property
现在发生的情况是,每次更改 A1Property 或 B1Property 时,实际上都会更改相同的变量。同样,如果您查询A1Property 或B1Property 的当前值,则会返回此值。因此它们是同步的。
如果你问的是这个问题,请告诉我。
编辑:
如果您实际上没有定义B1Property(可能是这种情况,请再次阅读您的问题),您可以从新的A1Property 获取/设置B1Property
Public Property A1Property As Integer
Get
Return Me.B1Property
End Get
Set(value As Integer)
Me.B1Property = value
End Set
End Property
这会做同样的事情。