0

イベントに3つの追加パラメーターを渡したい:

geocodeService.GeocodeCompleted += new EventHandler<GeocodeService.GeocodeCompletedEventArgs>(geocodeService_GeocodeCompleted);

パラメータは次のとおりです

  • int id
  • string color
  • double heading

    private void Geocode(string strAddress, int waypointIndex, int id, string color, double heading)
    {
    
    
        // Create the service variable and set the callback method using the GeocodeCompleted property.
        GeocodeService.GeocodeServiceClient geocodeService = new GeocodeService.GeocodeServiceClient("BasicHttpBinding_IGeocodeService");
    
        // NEED TO PASS id, color, heading TO THIS EVENT HANDLER
        geocodeService.GeocodeCompleted += new EventHandler<GeocodeService.GeocodeCompletedEventArgs>(geocodeService_GeocodeCompleted);
    
        GeocodeService.GeocodeRequest geocodeRequest = new GeocodeService.GeocodeRequest();
        geocodeRequest.Credentials = new Credentials();
        geocodeRequest.Credentials.ApplicationId = ((ApplicationIdCredentialsProvider)BingMap.CredentialsProvider).ApplicationId;
        geocodeRequest.Query = strAddress;
        geocodeService.GeocodeAsync(geocodeRequest, waypointIndex);
    }
    
    
    private void geocodeService_GeocodeCompleted(object sender, GeocodeService.GeocodeCompletedEventArgs e)
    {
        GeocodeResult result = null;
    
        if (e.Result.Results.Count > 0)
        {
            result = e.Result.Results[0];
            if (result != null)
            {
                // this.ShowMarker(result);
                this.ShowShip(result);
    
    
            }
        }
    
    }
    
4

2 に答える 2

0

これらのプロパティを追加して GeocodeService.GeocodeServiceClient を拡張し、イベント メソッド geocodeService_GeocodeCompleted で送信者引数を使用できます。

var service = (GeocodeService.GeocodeServiceClient) sender;

迅速で汚い(IMHO)バージョンは、ラムダ式を使用することです:

パラメーターを EventHandler に渡す

于 2013-02-01T13:51:28.743 に答える
0

GeocodeCompletedEventArgsextendsのように見えますAsyncCompletedEventArgs。には、非同期イベントの状態情報を格納するために使用できるAsyncCompletedEventArgsプロパティがあります。UserState通常、この状態は、イベントを発生させるメソッドにパラメーターとして渡されます。

詳細については、この質問を参照してください:カスタム追加パラメーターとしての Bing GeocodeService userState の使用

于 2013-02-01T13:53:24.307 に答える