2016-09-05 13 views
-1

XMLファイルを読み込み、そのデータをリストボックスにバインドしたいと思います。Windowphone 8.1非同期タスクへのコード変更

page1では、ボタンをクリックしてpage2に進みます。

ページ2では、リストボックスはxmlファイルからデータをバインドします。

これは、XMLファイルからのデータの取り込みのためのコードです:

PAGE2で
class GetData 
{ 
    public object obj_get_data(string xml_file) 
    { 
     XDocument xdoc = XDocument.Load(xml_file); 
     var list_emp = from query in xdoc.Descendants("emp") 
         select new du_lieu.thong_tin 
         { 
          Name = (string)query.Element("age"), 
          Age = (string)query.Element("age"), 
         }; 
     return list_emp; 
    } 
} 

NavigationHelper_LoadStateに私はデータバインディングにこのコードを記述します。このコードで

private void NavigationHelper_LoadState(object sender, LoadStateEventArgs e) 
{    
    GetData gd = new GetData(); 
    object obj = gd.obj_get_data(xml_danh_sach); 
    listbox1.ItemsSource = obj; 
} 

、すべてが、 okですしかし、page1のボタンをクリックすると、app2がpage2に行く前に何秒か遅れる。

私は、通常のようなアプリ を作るために非同期タスクとprogessバー/リングで、その上で作業 が、私はそれを行うために何を知らない必要がある知っています。 誰も私を助けることができますか?

class GetData 
{ 
    public async Task<object> obj_get_data(string xml_file) 
    { 
     XDocument xdoc = await XDocument.Load(xml_file); 
     var list_emp = from query in xdoc.Descendants("emp") 
         select new du_lieu.thong_tin 
         { 
          Name = (string)query.Element("age"), 
          Age = (string)query.Element("age"), 
         }; 
     return list_emp; 
    } 
} 

そして、この:

+0

はこのWPFまたはWindows Phoneのですか?あなたのタグは1つのことを言い、あなたのタイトルは別のものを言う。いずれにせよ、 'Task.Run()'に同期コードをラップして非同期実装を行う方法を示すStack Overflowの記事がたくさんあります。あなたはすでに何を見てきましたか?何を試しましたか? _specifically_何が問題になったのですか?このすべてを示す良い[mcve]を提供し、難しいことを正確に説明してください。 –

+0

@PeterDuniho:Windows Phone 8.1で – 1234abcd

答えて

0

はこれを試してみてください

private async Task NavigationHelper_LoadState(object sender, LoadStateEventArgs e) 
{    
    GetData gd = new GetData(); 
    object obj = await gd.obj_get_data(xml_danh_sach); 
    listbox1.ItemsSource = obj; 
}