价值不在预期范围内

Ebi*_*ser 10 c# silverlight web-services listbox

我使用以下代码更新列表框,这是从Web服务接收列表 -

client.userKeywordsCompleted += new EventHandler<userKeywordsCompletedEventArgs>(client_userKeywordsCompleted);
client.userKeywordsAsync();
Run Code Online (Sandbox Code Playgroud)

使用 -

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);

    }
Run Code Online (Sandbox Code Playgroud)

这工作正常,因为我在加载子窗口时使用它,因此列表框从数据库中获取列表,但是当用户选择列表框中的一个项目时,他们可以选择编辑所选项目.因此编辑就位,有一个编辑按钮,用于更新数据库中表格中的列.然后在按钮单击时,我再次调用上述代码以使用新凭据更新列表框.然而这带来了bcak的错误 -

"Value does not fall within the expected range."
Run Code Online (Sandbox Code Playgroud)

为什么我不能在按钮点击上调用web方法,因为它所做的就是刷新列表框???

Sta*_*art 11

这可能是因为您尝试向页面添加具有相同名称的ListBoxItem.

如果要使用新检索的值刷新列表框的内容,则必须先手动删除列表框的内容,否则您的循环将尝试再次创建lb_1并将其添加到同一列表中.

在这里查看Silverlight发生的类似问题:值不在预期的范围异常范围内

干杯,