bool identifyIsActive = false; private void Button_Click(object sender, RoutedEventArgs e) { MyMap.MouseClick +=QueryPoint_MouseClick; //to subscribe programmatically identifyIsActive = !identifyIsActive; //to update boolean } private void QueryPoint_MouseClick(object sender, ESRI.ArcGIS.Client.Map.MouseEventArgs e) { (sender as Map).MouseClick -= QueryPoint_MouseClick; //to unsubscribe if(!identifyIsActive) return; //when using boolean //Identify code goes here. }