添加时,我收到“值不在预期范围内的异常”
children 堆叠面板。即使myStackPanel.Children.Count = 0恰好在添加到stackpanel之前,也会发生这种情况。知道为什么吗?

void func()
{
          myStackPanel.Children.Clear();
          List<Docs> 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++;

关于c# - Silverlight:值不在预期范围内,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6067089/

10-11 04:13