Почему мой обработчик событий срабатывает дважды?
Привет, ребята, мне нелегко пытаться решить эту проблему, я был в течение 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 раза и так далее .. кто-нибудь знает, почему это делает это? Мне нужно это исправить для моего проекта :(