2016-09-05 2 views
-1

XML 파일을 읽고 목록 상자에 데이터를 바인딩하려고합니다.Windowphone 8.1 비동기 작업 코드 변경

페이지 1에서 버튼을 클릭하고 페이지 2로 이동하십시오.

페이지 2에서 xml 파일의 데이터를 바인딩하는 목록 상자. NavigationHelper_LoadState에 나는 데이터 바인딩이 코드 쓰기, 페이지 2에서

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; 
    } 
} 

:

이 XML 파일에서 데이터 가져 오기위한 코드이 코드

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

을, 모든, 괜찮습니다 하지만, page1에서 버튼을 클릭하면 app2가 page2로 이동하기 전에 잠시 지연됩니다.

나는 비동기 작업과 progess bar/ring으로 앱을 만드는 것이 필요하다는 것을 알고있다. 은 보통 과 같지만 잘 모르겠다. 모두 도와 주실 수 있습니까?

+0

이 WPF 또는 Windows 전화인가? 당신의 꼬리표는 한가지를 말하고, 당신의 표제는 또 다른 것을 말합니다. 어쨌든, Stack Overflow에는'Task.Run()'에 동기 코드를 래핑하여 비동기 구현을하는 방법을 보여주는 많은 게시물이 있습니다. 너 이미 뭘 보았 ​​니? 너 뭐 해봤 니? _specifically_ 무슨 문제가 있었습니까? 이 모든 것을 보여주는 좋은 [mcve]를 제공하고 어려움을주는 것을 정확히 설명해주십시오. –

+0

@PeterDuniho : Windows Phone 8.1에서 – 1234abcd

답변

0

이 시도 :

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; 
    } 
} 

그리고이 :

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; 
}