我有一些神秘的ArgumentException我一整天都在殴打 - 仍然不知道为什么会这样。
我的MainPage中有下一个简单的方法:
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);
}
}
此处tmpUnit
是我的班级FavsCanvas
的一个实例。它的代码并不重要 - 它将一些元素合并到Canvas中,这里称为subCanvas
,并且必须将一系列元素添加到父Canvas中,称为favsCanvas
。
所有这一点,我们最初有几个项目,用户可能会删除现有的并添加新项目。每次删除或添加项目时,我都会调用此过程(包括最初的程序加载)。
这个笑话是它在加载过程中以及从其他页面调用它时起作用,但是当我从类方法调用它时抛出异常,除了它正确添加第一个元素并拒绝与其他元素一起使用。
每个项目都有唯一的名称,我甚至试图不使用名称或使用随机名称 - 这不是偶然。我不知道为什么出现这个异常?! 我使用以下方法调用此方法:
MainPage.MPInstance.FavsRefresh();
这种方式适用于其他页面,但来自类 - 失败。我甚至只留下了一行(简单地在Canvas中重新加载这些项目):
private void FavMenuItem_Click(object sender, RoutedEventArgs e)
{
//Delete favorite
if (((MenuItem)sender).Header.ToString() == AppRes.FavsMenuDeleteFav)
{
MainPage.MPInstance.FavsRefresh();
}
}
有趣的是,这段代码在我几周前首次编写时有效,但现在却停止了。 我尝试的另一件事是从App.xaml.cs中的一个方法进行这个特定的调用,而这个方法又从类中调用,但它也没有用。
事实上,我已经研究了大多数参数 - 在两种情况下一切都是相同的:当它工作时和不工作时,除了调用方法的地方。但我没有看到任何合适的选择。
--- 8月5日加入
我不确定它是否重要,但它始终指向引发异常的行之后的下一行: (论坛不允许我发布图片,所以here。
我试图将此方法移动到类本身和App.xaml.cs类 - 同样的问题。
在加载期间调用时它正常工作(我的MainPage是Pivot,包含此favCanvas的页面是其中一个,但不是第一个),当我在覆盖其OnNavigatingFrom时从另一个页面调用它时。并且当MainPage和此数据透视图处于活动状态时调用它。可能是那样的东西?
答案 0 :(得分:0)
由于某种原因,页面在活动时不喜欢被修改(至少这样)。所以现在我被迫简单地重定向到另一个页面,在那里我只是调用我的方法,然后回去。
如果你有一些想法,他们仍然有需求,因为我的潮流就像拐杖而我不喜欢