За пределами вашего класса LabelX создайте следующий класс:
public class MassChangedEventArgs : EventArgs
{
public float Mass { get; private set; }
public MassChangedEventArgs(float mass)
{
this.Mass = mass;
}
}
Также за пределами вашего класса LabelX создайте следующий делегат.Это будет ваш обработчик событий.
public delegate void MassChangedEventHandler(object sender, MassChangedEventArgs e);
В вашем классе LabelX создайте событие для трансляции:
public class LabelX
{
public event MassChangedEventHandler MassChanged;
//the rest of your code here...
}
Вы также захотите создать частный метод экземпляра, который будет запускатьваше событие.
public class LabelX
{
public event MassChangedEventHandler MassChanged;
private void OnMassChanged()
{
if(MassChanged!=null)
this.MassChanged(this, new MassChangedEventArgs(this.Mass));
}
//the rest of your code here...
}
Наконец, всякий раз, когда ваше свойство Mass изменяется, вызывайте OnMassChanged.Например:
public class LabelX
{
private float mass;
public float Mass
{
get
{
return mass;
}
set
{
mass = value;
OnMassChanged();
}
}
public event MassChangedEventHandler MassChanged;
private void OnMassChanged()
{
if(MassChanged!=null)
this.MassChanged(this, new MassChangedEventArgs(this.Mass));
}
//the rest of your code here...
}
Когда вы хотите обработать это событие для каждого экземпляра, вам просто нужно зарегистрировать слушателя с событием MassChanged вашего базового объекта и выполнить любые необходимые действия.