Silverlight:值不在预期范围exception范围内
将子项添加到堆栈面板时,我得到“值不在预期的范围exception范围内”。 即使在添加到stackpanel之前myStackPanel.Children.Count = 0时也会发生这种情况。 知道为什么吗?
void func() { myStackPanel.Children.Clear(); List lDocs = docDictionary[ID]; foreach (Docs lDoc in lDocs) { ... Border myTextborder = new Border(); myTextborder.BorderThickness = new Thickness(1); myTextborder.Name = lDoc.Name; ... myStackPanel.Children.Add(myTextborder); //Getting Value does not fall within the expected range exception here } }
func()被多次调用。 我读到当我们尝试添加具有相同名称的子项时发生错误。 但在我的情况下,我正在清除堆栈面板,即使foreach循环每次调用func()只运行一次,也会发生错误
当添加两个具有相同名称的元素时,可能会导致此错误。 在您的情况下,是否有任何重复的lDoc.Name值? 如果是这样,您可以添加额外的唯一标识符。 例如:
int id = 0; //outside foreach loop myTextborder.Name = lDoc.Name + id.ToString(); id++;
仔细检查堆栈跟踪。 有时行号已关闭,但可能是在Name属性的setter中发生exception。 它必须遵循标识符的常规规则。
在我看来,你真正想要的是一个ItemsControl
,你并没有真正使用Silverlight的function: –
然后你的func
变成: –
public void func() { items.ItemsSource = docDictionary[ID]; }
我发现当您将控件的Name属性设置为Children中现有控件的相同名称时,通常会发生此错误。 我的猜测是Docs集合中有重复的Name。 它并不总是错误,但它有时没有解释。
上述就是C#学习教程:Silverlight:值不在预期范围exception范围内分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/1016217.html