Почему мой обработчик событий срабатывает дважды?

Привет, ребята, мне нелегко пытаться решить эту проблему, я был в течение 3 часов и до сих пор не могу выяснить, почему он делает это ... вот код

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

Когда я меняю категорию в первый раз, она отлично работает ... я имею в виду, что она вызывает функциюGetItemsAsync(selectedCategoryId) и захватывает результаты и вызывает обработчик событийclient_GetItemsCompleted() и внутренняя работа обработчика событий работает, как положено, он устанавливает списки с правильными данными и отображает itemNumber и itemName в поле списка ... НО, когда я снова изменяю категорию, чтобы получить разные элементы, которые он не использует не работает должным образом, то, что он делает, это то, что он очищает списки и заполняет списки так, как это должно быть, запускает цикл for и заполняет список, называемыйItems но по какой-то причине он снова попадает в верхнюю часть функции и очищает все списки: / ... расскажите, пожалуйста, почему он снова выполняет функцию ... и когда я снова выбираю другую категорию, он выполняет обработчик событий 3 раза а затем 4 раза и так далее .. кто-нибудь знает, почему это делает это? Мне нужно это исправить для моего проекта :(

Ответы на вопрос(1)

Ваш ответ на вопрос