0

ダブル タップ イベントを使用しているときに、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 イベントのみを使用しましたが、正常に動作します。したがって、これはダブルタップ イベントでのみ発生するようです。

4

1 に答える 1

0

アプリで同様のことが発生しているため、新しい値でアニメーション化することが問題の原因であると確信しています。

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

私のコードでは、要素を追加する前にコードを無効にするだけで、問題は解決しました。

于 2015-04-28T16:40:41.597 に答える