Значение не попадает в ожидаемый диапазон

Я использую следующий код для обновления списка, это получение списка из веб-службы -

client.userKeywordsCompleted += new EventHandler<userKeywordsCompletedEventArgs>(client_userKeywordsCompleted);
client.userKeywordsAsync();

использование -

void client_userKeywordsCompleted(object sender, userKeywordsCompletedEventArgs e)
    {

        string result = System.Convert.ToString(e.Result);


        for (int i = 0; i < e.Result.Count; i++)
        {

            ListBoxItem lbitem = new ListBoxItem();

            lbitem.Name = "lb_" + i;
            lbitem.Content = e.Result[i];

            lbitem.AddHandler(UIElement.MouseLeftButtonDownEvent, new MouseButtonEventHandler(ListBoxItem_DoubleClickEvent), true);

            listBox1.Items.Add(lbitem);

        }

Это отлично работает, так как я использую его при загрузке дочернего окна, поэтому список получает список из базы данных, однако, когда пользователь выбирает один из элементов в списке, у них есть возможность редактировать выбранный элемент. Таким образом, одно редактирование на месте, есть кнопка редактирования, которая обновляет столбец в таблице в базе данных. Так затем нажмите кнопку, я снова вызываю вышеупомянутый код, чтобы обновить список с новыми учетными данными. Однако это приводит bcak к ошибке -

"Value does not fall within the expected range."

почему я не могу вызвать веб-метод нажатием кнопки, так как все, что он делает, это обновление списка???

3 ответов


Это может быть связано с тем, что вы пытаетесь добавить ListBoxItem с тем же именем на страницу.

Если вы хотите обновить содержимое listbox с вновь полученными значениями, вам придется сначала вручную удалить содержимое listbox другим способом, ваш цикл попытается создать lb_1 снова и добавить его в тот же список.

посмотрите здесь для аналогичной проблемы, которая произошла в Silverlight: значение не попадает в ожидаемый диапазон исключение

спасибо,


У меня была совершенно другая причина, по которой одно и то же уведомление "значение не попадает в ожидаемый диапазон" из Visual studio 2008 при попытке использовать: Инструменты - > Инструменты Windows Embedded Silverlight - > Обновить Проект Silverlight Для Windows Embedded.

потратив много ohurs, я узнал, что проблема заключалась в том, что не было файла ресурсов, и инструмент обновления ищет .Файл RC

поэтому решением является добавление в папку ресурсов a .Файл RC и чем это прекрасно работает. Я надеюсь, что это поможет кому-то там


в случае WSS 3.0 недавно я испытал ту же проблему. Это было из-за столбца, который был доступен из кода, не присутствовал в списке wss.