prevent MVVM ServiceAgent event hooking up multiple times
Developing a Silverlight application that is communication with a WCF Service.

MVVM -> ServiceAgent -> WCF Service

So in my ViewModel i have:

    ServiceAgent.SearchExternalPatients(Name, (s, e) => 
                { 
                    ExternalPatients = e.Result;                    
                });

in my service agent i have:

    public void SearchExternalPatients(string name, EventHandler<SearchPatientExternalCompletedEventArgs> callback)
        {                          
            _proxy.SearchPatientExternalCompleted += callback;
            _proxy.SearchPatientExternalAsync(name);
        }

The problem is each time i click on the search button it hooks up the event again, and when i get the result back i receive it several times.

What is the best way to unhook these events in the MVVM ServiceAgent pattern?
prevent MVVM ServiceAgent event hooking up multiple times
===

Developing a Silverlight application that is communication with a WCF Service.

MVVM -> ServiceAgent -> WCF Service

So in my ViewModel i have:

    ServiceAgent.SearchExternalPatients(Name, (s, e) => 
                { 
                    ExternalPatients = e.Result;                    
                });

in my service agent i have:

    public void SearchExternalPatients(string name, EventHandler<SearchPatientExternalCompletedEventArgs> callback)
        {                          
            _proxy.SearchPatientExternalCompleted += callback;
            _proxy.SearchPatientExternalAsync(name);
        }

The problem is each time i click on the search button it hooks up the event again, and when i get the result back i receive it several times.

What is the best way to unhook these events in the MVVM ServiceAgent pattern?