2016-10-20 2 views
0

Ich schreibe eine Anwendung in Xamarin.Forms für Android, iOS und Windows Store. Ich möchte ein ListView mit ungefähr 10.000 Elementen aus einer XML-Datei füllen. Das Problem ist, wenn ich den Code für Windows Phone oder Windows Store ausführen, die Anwendung für etwa eine Minute, bevor Sie wieder lebendig und das Füllen der ListView. Es füllt sich sofort für Android und iOS. Für Windows bleibt es jedoch zurück. Könnte mir jemand helfen, dieses Problem zu beheben? Hier ist mein Code, der das Lesen von XML tut und bevölkern das Listview:Xamarin.Forms Windows App laden XML-Daten in ListView

public async void LoadCharacters() 
    { 
     Assembly assembly = typeof(CharacterPage).GetTypeInfo().Assembly; 
     string file = assembly.GetManifestResourceNames().First(x => x.Contains("Characters.xml")); 
     Stream stream = assembly.GetManifestResourceStream(file); 

     data = new ObservableCollection<Character>(); 

     await Task.Factory.StartNew(delegate { 

      XDocument doc = XDocument.Load(stream); 

      IEnumerable<Character> characters = from query in doc.Descendants("c") 
               select new Character 
               { 
                Simplified = query.Attribute("s").Value, 
                Traditional = query.Attribute("t").Value, 
                Pinyin = query.Attribute("p").Value, 
                English = query.Attribute("e").Value, 
                URL = query.Attribute("u").Value 
               }; 
      data = characters.ToObservableCollection(); 
     }); 

     characterList.ItemsSource = data; 
    } 

Dieser Code funktioniert und läuft glatt in iOS und Android. In Windows hängt es jedoch für etwa 1 Minute. Bitte helfen Sie.

Danke

Antwort

0

Die Antwort ist die Höhe des Listview-Element zu setzen. Dann lädt es sofort.

Verwandte Themen