Значение не попадает в ожидаемый диапазон
Я использую следующий код для обновления списка, это получение списка из веб-службы -
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.