Шаблон наблюдателя :).
Вы должны использовать события. Посмотрите INotifyPropertyChanged
Вот небольшой фрагмент кода, который вы должны рассмотреть, он использует основные события для уведомления об изменении:
Public Property EstMenage() As Boolean
Get
Return _estMenage
End Get
Set(ByVal value As Boolean)
_estMenage = value
NotifyDataChanged()
End Set
End Property
Private Sub NotifyDataChanged(ByVal sender As Object, ByVal e As EventArgs)
RaiseEvent OnDataChanged(sender, e)
End Sub
Private Sub NotifyDataChanged()
NotifyDataChanged(me, new EventArgs())
End Sub
<NonSerialized()> _
Friend Event OnDataChanged(ByVal sender As Object, ByVal e As EventArgs)
Редактировать:
В setter
вы можете иметь некоторый код, который определяет, находится ли вызывающий метод в фактическом классе или нет.
Если звонящий находится в классе => Не повышать
Иначе звонящий не в классе => Поднять