長い間、私は1ページに約40個のチェックボックスと40個のボタンを使用していました。チェックボックスの各状態はIOに保存されました。同じ量のチェックボックスとボタンを使用して別のページを作成したので、ページの読み込みを高速化することについて少し考えました。突然...エミュレータを使用しました...この大きなページを起動しているときに、アプリが50%のケースでクラッシュします。(40チェックボックス+ 40ボタン)4ページ(それぞれ10チェックボックス+ 10ボタン)に分割しましたが、問題が発生し続けます。このページを2回目に起動すると、エラーが発生します。実際、1ページでは、すべて問題ありません。
System.ArgumentOutOfRangeException is the error
列をなして :
cb11.IsChecked = cbStates(10)
これはコードです:
Imports System
Imports System.Collections.Generic
Imports System.Linq
Imports System.Net
Imports System.Windows
Imports System.Windows.Controls
Imports System.Windows.Documents
Imports System.Windows.Input
Imports System.Windows.Media
Imports System.Windows.Media.Animation
Imports System.Windows.Shapes
Imports Microsoft.Phone.Controls
Partial Public Class Weidersix2
Inherits PhoneApplicationPage
Private cbStates As List(Of Boolean)
' Constructor
Public Sub New()
InitializeComponent()
cbStates = New List(Of Boolean)()
End Sub
Protected Overrides Sub OnNavigatedTo(e As System.Windows.Navigation.NavigationEventArgs)
MyBase.OnNavigatedTo(e)
cbStates = DB.readStates()
If cbStates.Count > 0 Then
cb11.IsChecked = cbStates(10)
cb12.IsChecked = cbStates(11)
cb13.IsChecked = cbStates(12)
cb14.IsChecked = cbStates(13)
cb15.IsChecked = cbStates(14)
cb16.IsChecked = cbStates(15)
cb17.IsChecked = cbStates(16)
cb18.IsChecked = cbStates(17)
cb19.IsChecked = cbStates(18)
cb20.IsChecked = cbStates(19)
Else
If cb11.IsChecked = True Then
cbStates.Add(True)
Else
cbStates.Add(False)
End If
If cb12.IsChecked = True Then
cbStates.Add(True)
Else
cbStates.Add(False)
End If
If cb13.IsChecked = True Then
cbStates.Add(True)
Else
cbStates.Add(False)
End If
If cb14.IsChecked = True Then
cbStates.Add(True)
Else
cbStates.Add(False)
End If
If cb15.IsChecked = True Then
cbStates.Add(True)
Else
cbStates.Add(False)
End If
If cb16.IsChecked = True Then
cbStates.Add(True)
Else
cbStates.Add(False)
End If
If cb17.IsChecked = True Then
cbStates.Add(True)
Else
cbStates.Add(False)
End If
If cb18.IsChecked = True Then
cbStates.Add(True)
Else
cbStates.Add(False)
End If
If cb19.IsChecked = True Then
cbStates.Add(True)
Else
cbStates.Add(False)
End If
If cb20.IsChecked = True Then
cbStates.Add(True)
Else
cbStates.Add(False)
End If
End If
End Sub
Protected Overrides Sub OnNavigatedFrom(e As System.Windows.Navigation.NavigationEventArgs)
MyBase.OnNavigatedFrom(e)
DB.saveStates(cbStates)
End Sub
Private Sub cb11_Checked(sender As Object, e As RoutedEventArgs)
If cbStates.Count > 0 Then
cbStates(10) = True
End If
End Sub
Private Sub cb11_Unchecked(sender As Object, e As RoutedEventArgs)
If cbStates.Count > 0 Then
cbStates(10) = False
End If
End Sub
Private Sub cb12_Checked(sender As Object, e As RoutedEventArgs)
If cbStates.Count > 0 Then
cbStates(11) = True
End If
End Sub
Private Sub cb12_Unchecked(sender As Object, e As RoutedEventArgs)
If cbStates.Count > 0 Then
cbStates(11) = False
End If
End Sub
Private Sub cb13_Checked(sender As Object, e As RoutedEventArgs)
If cbStates.Count > 0 Then
cbStates(12) = True
End If
End Sub
Private Sub cb13_Unchecked(sender As Object, e As RoutedEventArgs)
If cbStates.Count > 0 Then
cbStates(12) = False
End If
End Sub
Private Sub cb14_Checked(sender As Object, e As RoutedEventArgs)
If cbStates.Count > 0 Then
cbStates(13) = True
End If
End Sub
Private Sub cb14_Unchecked(sender As Object, e As RoutedEventArgs)
If cbStates.Count > 0 Then
cbStates(13) = False
End If
End Sub
Private Sub cb15_Checked(sender As Object, e As RoutedEventArgs)
If cbStates.Count > 0 Then
cbStates(14) = True
End If
End Sub
Private Sub cb15_Unchecked(sender As Object, e As RoutedEventArgs)
If cbStates.Count > 0 Then
cbStates(14) = False
End If
End Sub
Private Sub cb16_Checked(sender As Object, e As RoutedEventArgs)
If cbStates.Count > 0 Then
cbStates(15) = True
End If
End Sub
Private Sub cb16_Unchecked(sender As Object, e As RoutedEventArgs)
If cbStates.Count > 0 Then
cbStates(15) = False
End If
End Sub
Private Sub cb17_Checked(sender As Object, e As RoutedEventArgs)
If cbStates.Count > 0 Then
cbStates(16) = True
End If
End Sub
Private Sub cb17_Unchecked(sender As Object, e As RoutedEventArgs)
If cbStates.Count > 0 Then
cbStates(16) = False
End If
End Sub
Private Sub cb18_Checked(sender As Object, e As RoutedEventArgs)
If cbStates.Count > 0 Then
cbStates(17) = True
End If
End Sub
Private Sub cb18_Unchecked(sender As Object, e As RoutedEventArgs)
If cbStates.Count > 0 Then
cbStates(17) = False
End If
End Sub
Private Sub cb19_Checked(sender As Object, e As RoutedEventArgs)
If cbStates.Count > 0 Then
cbStates(18) = True
End If
End Sub
Private Sub cb19_Unchecked(sender As Object, e As RoutedEventArgs)
If cbStates.Count > 0 Then
cbStates(18) = False
End If
End Sub
Private Sub cb20_Checked(sender As Object, e As RoutedEventArgs)
If cbStates.Count > 0 Then
cbStates(19) = True
End If
End Sub
Private Sub cb20_Unchecked(sender As Object, e As RoutedEventArgs)
If cbStates.Count > 0 Then
cbStates(19) = False
End If
End Sub
End Class