2012-04-23 60 views
9

内我用下面的代码更新列表框,这个使用recieving从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); 

     } 

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

"Value does not fall within the expected range." 

为什么不能呼吁按钮单击Web方法,因为所有它做的是刷新列表框???

回答

11

这可能是由于您试图向页面添加具有相同名称的ListBoxItem。

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

看看这里所发生Silverlight: Value does not fall within the expected range exception

干杯类似的问题,

+0

那么,你会建议我做了什么?我确实看到了答案,我认为你说的是​​问题。 – Ebikeneser 2012-04-23 17:21:28

+0

其实我只是添加一个清除功能的按钮单击列表框项目,这是第一个tiem与刷新选项,但是如果我再做一次列表框不刷新,你知道这是为什么吗? – Ebikeneser 2012-04-23 17:35:26

+0

清除后只能为了调试而确保项目列表为空。也许你应该考虑在回调中加以明确。 – Stainedart 2012-04-23 17:43:43

1

我从一个完全以不同的理由同样的通知“值没有在预期范围内”从Visual Studio 2008而有尝试使用: 工具 - > Windows Embedded Silverlight工具 - >更新Silverlight对于Windows Embedded Project。

花费很多ohurs后,我发现,这个问题是没有一个资源文件和更新工具查找rc文件

为此解决办法是添加到资源文件夹中的.RC文件,而不是完美的作品。 我希望它能帮助那里的人

0

最近我遇到了WSS 3.0的问题。这是因为从代码访问的列没有出现在wss列表中。

相关问题