C# 尝试将子对象添加到画布时发生ArgumentException

C# 尝试将子对象添加到画布时发生ArgumentException,c#,.net,windows-phone,argumentexception,C#,.net,Windows Phone,Argumentexception,我有一些神秘的争论,我已经打了一整天-仍然不知道为什么会发生 我的主页上有下一个简单的方法: public void FavsRefresh() { favsCanvas.Children.Clear(); for (short i = 0; i < (App.Current as App).favUnits.Count; i++) { FavsItems tmpUnit; (App.Current as App).favUnits

我有一些神秘的争论,我已经打了一整天-仍然不知道为什么会发生

我的主页上有下一个简单的方法:

public void FavsRefresh()
{
    favsCanvas.Children.Clear();

    for (short i = 0; i < (App.Current as App).favUnits.Count; i++)
    {
        FavsItems tmpUnit;
        (App.Current as App).favUnits.TryGetValue((App.Current as App).ids[i], out tmpUnit);
        Canvas.SetTop(tmpUnit.subCanvas, i * 120);
        favsCanvas.Children.Add(tmpUnit.subCanvas);
    }
}
这种方法在其他页面上运行良好,但在类中运行失败。我甚至只留下了一行(简单地在画布中重新加载这些项目):

有趣的是,这段代码在我几周前第一次编写时就已经运行了,但现在不知何故停止了。 我尝试过的另一件事是从App.xaml.cs中的一个方法进行这个特殊的调用,而这个方法又是从类中调用的,但也没有帮助

事实上,我已经研究了大多数参数——在这两种情况下,一切都是一样的:它何时工作,何时不工作,除了调用方法的位置。但我看不到任何合适的替代方案

---8月5日增补

我不确定它是否重要,但它总是指向引发异常的行之后的下一行: (论坛不允许我发布图片,所以

我试着将这个方法移动到类中,既移动到类本身,也移动到App.xaml.cs,这是同样的问题


在加载过程中调用时,它可以正常工作(我的主页是Pivot,包含此favCanvas的页面是Pivot之一,但不是第一个)当我从另一个页面调用它时,覆盖了它的OnNavigatingFrom。当它在主页和这个轴心处于活动状态时被调用时。可能是这样的吗?

伙计们,我仍然无法理解原因本身,但最终找到了一种肮脏的方式四处走动

由于某些原因,该页面不喜欢在活动状态下被修改(至少是这样),所以现在我被迫重定向到另一个页面,在那里我只调用我的方法,然后返回


如果你有一些想法,它们仍然很有需求,因为我现在的想法就像一根拐杖,我不喜欢它

在哪一行出现这种异常?在子项的添加行:favsCanvas.Children.Add(tmpUnit.subCanvas);太多的类型转换。TryGetValue返回一个
bool
,使用它。TryGetValue不会有帮助,因为它提供了正确的值…@Leks你说过“这种方法在其他页面上效果很好,但在类中-失败。”所以…可能有几个线程正在尝试修改画布。儿童
集合?我会这样看。
MainPage.MPInstance.FavsRefresh();
private void FavMenuItem_Click(object sender, RoutedEventArgs e)
{
    //Delete favorite
    if (((MenuItem)sender).Header.ToString() == AppRes.FavsMenuDeleteFav)
    {
        MainPage.MPInstance.FavsRefresh();
    }
}