XAML - ListView DoubleTapped灾难性故障

时间:2014-02-05 09:17:45

标签: xaml listview winrt-xaml itemsource

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

这是Windows 8.1商店应用程序。

简单示例:如果我在列表视图中有6个项目,并且我双击项目编号3.然后ListView重新绑定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事件,它工作正常。所以看起来这只发生在双击事件中。

1 个答案:

答案 0 :(得分:0)

我很确定这个问题是由新值中的动画引起的,因为我在我的应用中遇到了类似的事情。

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

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