价值不在预期范围内

时间:2012-04-23 17:07:52

标签: c# silverlight web-services listbox

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

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

    }

这很好,因为我在加载子窗口时使用它,所以ListBox从数据库中获取列表,但是,当用户选择ListBox中的一个项目时,可以选择编辑所选项目。因此,一旦编辑到位,就会有一个编辑按钮,用于更新数据库中表格中的列。然后在按钮单击时,我再次调用上述代码以使用新凭据更新ListBox。但是,这会带来错误 -

"Value does not fall within the expected range."

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

3 个答案:

答案 0 :(得分:11)

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

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

请在此处查看发生Silverlight: Value does not fall within the expected range exception

的类似问题

干杯,

答案 1 :(得分:2)

我试图使用以下内容从Visual Studio 2008获得相同的通知“值不在预期范围内”的完全不同的原因: 工具 - &gt; Windows Embedded Silverlight工具 - &gt;更新适用于Windows Embedded Project的Silverlight。

花了很多钱后,我发现问题是没有资源文件,更新工具会查找.RC文件

因此解决方案是将资源文件夹添加到.RC文件中,而不是完美地工作。 我希望它可以帮助那里的人

答案 2 :(得分:0)

最近在WSS 3.0的情况下,我遇到了同样的问题。这是因为从代码访问的列在wss列表中不存在。