繁体   English   中英

值不在预期范围内

[英]Value does not fall within the expected range

我使用以下代码更新列表框,这从 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 但是,这会带来错误:

“价值不在预期范围内。”

为什么我不能在单击按钮时调用 Web 方法,因为它所做的只是刷新ListBox

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

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

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

在尝试使用以下工具时,我从 Visual Studio 2008 收到了完全不同的相同通知“值不在预期范围内”:工具 -> Windows Embedded Silverlight 工具 -> 为 Windows Embedded 项目更新 Silverlight。

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

因此,解决方案是将 .RC 文件添加到资源文件夹中,然后它可以完美运行。 我希望它会帮助那里的人

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM