0

使用 Double Tap 事件时,当 ListViews ItemSource - ObservableCollection 加载的项目较少时,我会遇到灾难性故障。现在写了一个非常简单的例子,我仍然得到同样的错误。

这是一个 Windows 8.1 应用商店应用程序。

简单示例:如果列表视图中有 6 个项目,并且我双击项目编号 3。然后列表视图重新绑定 4 个项目。这很完美。

但是,如果我双击第 5 或第 6 项项目,我会遇到灾难性故障。

代码:

    <ListView x:Name="myListView" DoubleTapped="myListView_DoubleTapped" />

    public MainPage()
    {
        this.InitializeComponent();

        List<string> list1 = new List<string>();

        list1.Add("item1");
        list1.Add("item2");
        list1.Add("item3");
        list1.Add("item4");
        list1.Add("item5");
        list1.Add("item6");

        myListView.ItemsSource = list1;
    }

    private void myListView_DoubleTapped(object sender, DoubleTappedRoutedEventArgs e)
    {
        List<string> list2 = new List<string>();

        list2.Add("OterhItem1");
        list2.Add("OterhItem2");
        list2.Add("OterhItem3");
        list2.Add("OterhItem4");

        myListView.ItemsSource = list2;
    }

更新:我尝试了同样的方法,但只有一个 Tapped 事件,它工作正常。所以看起来这只发生在双击事件上。

4

1 回答 1

0

我很确定问题是由新值的动画引起的,因为我在我的应用程序中得到了类似的东西。

Frame fr = Window.Current.Content as Frame;
fr.IsEnabled = false;
   UpdateCollectionSomehow(...)
fr.IsEnabled = true;

在我的代码中,我只是在添加更多元素之前禁用了代码,问题就消失了。

于 2015-04-28T16:40:41.597 回答