Dlaczego mój program obsługi zdarzeń strzela dwa razy?

hej, mam trudny czas, próbując rozwiązać ten problem. Byłem przez 3 godziny i wciąż nie mogłem dowiedzieć się, dlaczego to robi ... oto kod

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.");
        }
    }

Kiedy zmieniam kategorię po raz pierwszy, działa idealnie ... mam na myśli, że wywołuje funkcjęGetItemsAsync(selectedCategoryId) i pobiera wyniki i dzwoni do obsługi zdarzeńclient_GetItemsCompleted() a wewnętrzna praca modułu obsługi zdarzeń działa tak, jak powinna, ustawia listy z odpowiednimi danymi i wyświetla itemNumber oraz itemName w polu listy ... ALE kiedy zmienię kategorię ponownie, aby uzyskać różne elementy, nie robi działa poprawnie, co powoduje, że czyści listy i wypełnia listy tak, jak powinno, uruchamia pętlę for i wypełnia listę listBox o nazwieItems ale z jakiegoś powodu ponownie trafia na szczyt funkcji i opróżnia wszystkie listy: / ... proszę powiedz, dlaczego ponownie uruchamia tę funkcję .. i kiedy wybiorę inną kategorię ponownie, wykonuje program obsługi zdarzeń 3 razy, a następnie 4 razy i tak dalej ... każdy wie, dlaczego to robi? muszę to naprawić dla mojego projektu :(

questionAnswers(1)

yourAnswerToTheQuestion