使用其父类的属性绑定自定义控件的新属性值

时间:2014-07-30 10:50:14

标签: .net vb.net visual-studio-2010 inheritance

(VB.NET VS2010)我在几个项目中使用了继承基本系统控件的自定义控件库(称之为A-controls),现在我想使用第三方库的组件(称之为B-控件)以及为了在我的项目中轻松集成这些组件,我想创建另一个自定义的组件库(称之为C-Controls),它继承了B-Controls但具有相同的A-Controls属性(类和属性的相同名称) ),目标只是在我的项目中更改库引用。

我的问题是,B-Controls有一个类似于A1属性的B1属性,所以在我的C-controls中我有一个直接继承B-Controls控件的组件,我添加了类似的A1-具有相同名称的属性,所以我在C-Controls中控制了B1-Property和A1-property,我想在它们改变时同步它们的值。

有可能吗?是否可以不修改每个控件的事件?

解释可能是一团糟...如果需要,我会完成更多。

提前致谢。

  • A-Control-Component(继承系统组件)
    • A1-Property
  • B-控制分量
    • B1-属性
  • C-Control-Component(继承第三方库)其名称实际上也是A-Control-Component
    • B1-Property(通过继承)
    • A1-Property(代表B1-Property)

1 个答案:

答案 0 :(得分: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

现在发生的是,每次更改A1PropertyB1Property实际上都会更改相同的变量。同样,如果您查询A1PropertyB1Property的当前值,则会返回此值。因此他们被同步了。

如果这就是你的要求,请告诉我。

修改

如果您实际上没有定义B1Property(可能是这种情况,请再次阅读您的问题),您只需从新B1Property

获取/设置A1Property即可
Public Property A1Property As Integer
  Get
    Return Me.B1Property
  End Get
  Set(value As Integer)
    Me.B1Property = value
  End Set
End Property

这会做同样的事情。