2016-10-20 26 views
0

Android、iOS、Windowsストア用のXamarin.Formsにアプリケーションを作成しています。私はXMLファイルから約10,000の要素でListViewを生成したい。問題は、Windows PhoneまたはWindows Storeのコードを実行すると、アプリケーションが約1分間遅れて元に戻り、ListViewにデータが入力される前です。 AndroidとiOS用に即座に設定されます。しかし、Windowsの場合、それは遅れます。誰かがこの問題を解決する手助けをしてくれましたか? XMLの読み込みとListViewの読み込みを行うコードは次のとおりです。Xamarin.Forms Windows AppでXMLデータを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; 
    } 

このコードは機能し、iOSとAndroidでスムーズに動作します。ただし、Windowsでは約1分間停止します。助けてください。

ありがとうございました

答えて

0

答えはリストビューの高さを設定することです。その後すぐにロードされます。

関連する問題