Вы должны быть в состоянии сделать это, как если бы вы были событием любого класса.
public event Action<object, EventArgs> LocationChanged;
тогда вы можете иметь защищенный виртуальный метод, такой как:
protected virtual void OnLocationChanged(EventArgs args)
{
if(LocationChanged != null)
{
LocationChanged(this, args);
}
}
Youможет запустить ваш метод OnLocationChanged там, где вам нужно, и событие, которое вы прикрепили, сделает свое дело.