Так я всегда делал.
Объявите формат делегата, все обработчики будут использовать этот формат
public delegate void gcw_PosChangedEventHandler(GeoPositionChangedEventArgs args);
Объявите событие, которое другие могут зарегистрировать для
public event gcw_PosChangedEventHandler gcw_PosChanged;
Зарегистрироваться на событие
someOtherClass.gcw_PosChanged += this.gcw_PositionChanged;
Создайте событие, вызвав его напрямую.
// Inside of 'someOtherClass'
gcw_PosChanged(args);
Обработайте событие, которое мы зарегистрировали за пару шагов ранее.
private void gcw_PositionChanged(GeoPositionChangedEventArgs args)
{
// Stop the GeoCoordinateWatcher now that we have the device location.
this.gcw.Stop();
bannerAd.LocationLatitude = e.Position.Location.Latitude;
bannerAd.LocationLongitude = e.Position.Location.Longitude;
AdGameComponent.Current.Enabled = true;
}