¿Por qué mi controlador de eventos se dispara dos veces?

Hola, chicos, me está costando mucho intentar resolver este problema hace 3 horas y todavía no pude averiguar por qué está haciendo esto ... aquí está el código

private void Catagory_SelectionChanged(object sender, SelectionChangedEventArgs e)
    {
        int selectedCategoryId = categoryIdList[categoryListBox.SelectedIndex];

        client.GetItemsAsync(selectedCategoryId);
        client.GetItemsCompleted += 
            new EventHandler<GetItemsCompletedEventArgs>(client_GetItemsCompleted);
    }

void client_GetItemsCompleted(object sender, GetItemsCompletedEventArgs e)
{
        itemIdList.Clear();
        itemNameList.Clear();
        itemNumberList.Clear();
        itemDisplayList.Clear(); //Clears the Display List Items

        if (e.Error == null)
        {
            itemIdList = e.ItemIDList;
            itemNumberList = e.itemNumber;
            itemNameList = e.Result;

            for (int i = 0; i < itemIdList.Count; i++)
            {
                itemDisplayList.Add(new ItemDisplay { itemNumber = itemNumberList[i], itemName = itemNameList[i] });
            }

            //Populating the listbox controll with the itemDisplaylist...
            Items.ItemsSource = itemDisplayList;
        }
        else
        {
            MessageBox.Show("Problem in getting the items list.");
        }
    }

Cuando cambio la categoría la primera vez, funciona perfectamente ... perfectamente quiero decir que llama a la funciónGetItemsAsync(selectedCategoryId) y toma los resultados y llama al controlador de eventosclient_GetItemsCompleted() y el funcionamiento interno del controlador de eventos funciona como es debido, establece las listas con los datos adecuados y muestra el Número de artículo y el Nombre de elemento en el cuadro de lista ... PERO cuando cambio la categoría nuevamente para obtener diferentes elementos que no no funciona correctamente, lo que está haciendo es que borra las listas y las llena como se supone que debe hacerlo, ejecuta el bucle for y llena el listBox llamadoItems pero por alguna razón, vuelve a la parte superior de la función y vacía todas las listas: / ... dígame por qué está ejecutando la función nuevamente ... y cuando elijo otra categoría otra vez, ejecuta el controlador de eventos 3 veces y luego 4 veces y así sucesivamente ... ¿alguien sabe por qué está haciendo esto? Necesito esto arreglado para mi proyecto :(

Respuestas a la pregunta(1)

Su respuesta a la pregunta